Ich habe ein Modell mit einer Tabelle namens "Kunden" erstellt.MVC Rückgabeliste der Spalten anders als Full-Modell
Es enthält folgende Felder:
- CustomerProfileID
- Kundenname
- Geburtsdatum
- Address1
- Stadt
- Staat
- Zip
- Crea Tedon
- CreatedBy
Ich habe einen "Function Import" von einer gespeicherten Prozedur (CustomerProfiles_Search), die die Tabelle durchsucht. (Ich kann den Sproc aufgrund von sensiblen Informationen nicht veröffentlichen). Die "Rückgabe einer Sammlung von" ist auf "Entitäten: CustomerProfile" festgelegt. Es gibt die folgenden:
- Kundenname
- Geburtsdatum
- Address1
Jetzt ist hier, wo ich verwirrt. Ich habe meinen Controller, der die Felder zur Suche übergibt und dann an mein "Gateway" weitergibt, das eine Liste zurückgibt.
Mein Controller:
public ActionResult GetRowCount(string CustomerName, string BirthDate, string Address1, string City, string State, string Zip)
{
List<CustomerProfile> searchResults = CustomerProfileGateway.Search(CustomerName, BirthDate, Address1, City, State, Zip);
int count = searchResults.Count();
string rowCount = count.ToString();
if (Request.IsAjaxRequest())
return Content(rowCount);
else
return RedirectToAction("Index", "OneView");
}
... In meinem CustomerProfileGateway.cs Datei:
public static List<CustomerProfile> Search(string CustomerName, string BirthDate, string Address1, string City, string State, int Zip)
{
using (ModelEntities context = new ModelEntities())
{
return context.CustomerProfiles_Search(CustomerName, BirthDate, Address1, City, State, Zip).ToList();
}
}
Allerdings, wenn ich die Ergebnisse in einer Liste ausgegeben versuchen, erhalte ich ein Fehler wenn ich das tue:
The data reader is incompatible with the specified 'SVPModel.CustomerProfile'. A member of the type, 'CustomerProfileID', does not have a corresponding column in the data reader with the same name.
Ich denke, ich muss ein Modell von dem, was zurückgegeben wird, erstellen.
Ich habe folgendes:
namespace Project.ABC.Objects
{
class SearchModel
{
public class SearchResults
{
public string CustomerName { get; set; }
public string BirthDate { get; set; }
public string Address1 { get; set; }
}
}
}
Aber ich weiß nicht, wie dies zu tun? Kann mir bitte jemand zeigen, was ich hier falsch mache? Jede Hilfe wird sehr geschätzt.
Das habe ich versucht, @Pedro. Wenn ich das Dropdown-Menü "Entitäten" anschaue, werden meine "SearchResults" dort nicht angezeigt. Wie mache ich das möglich? Mein SearchModel befindet sich in meinem Objektordner, der auch das Hauptmodell namens SVPModel.edmx hat. Wo gehe ich falsch? – Turp
Ehrlich gesagt, habe ich nie die Benutzeroberfläche dafür verwendet. Aber sollten Ihre 'SearchResults' nicht von 'EntityObject' erben? Versuchen Sie dies: Kommentieren Sie Ihre 'SearchResults' und erstellen Sie eine neue Entity im edmx Designer mit den 3 Eigenschaften, die Sie benötigen. Es sollte es tun, denke ich, aber wieder, ich bin kein Experte in diesem ... – Pedro