Problem anfragende mit EntityReference
-
22-09-2019 - |
Frage
Wenn ich den Code ausführen:
public List<T> GetCustomerTxList(int customerId)
{
var matchingPocos = new List<T>();
using (linq.AOMSEntities dataRepos = new linq.AOMSEntities())
{
IEnumerable txlist = from t in dataRepos.TransactionRecord
where t.CustomerReference.Value.Id == customerId
select t;
foreach (EntityObject entity in txlist)
{
matchingPocos.Add(entity.ConvertToPoco<T>());
}
}
return matchingPocos;
}
ich die folgende Ausnahme erhalten: Data.Repository.Integration.Test.LinqRepositoryTest.GetCustomerTxList: System.NotSupportedException: Der angegebene Typ member 'Customer' ist nicht in LINQ to Entities unterstützt. Nur initializers Einheit Mitglieder und Einheit Navigationseigenschaften unterstützt werden.
Customer ist ein EntityReference auf den TransactionRecord Unternehmen eine Customer-Entität verweisen.
Warum kann ich keine Abfrage eine Entity-Referenz verwenden?
Was ist die empfohlene Vorgehensweise eine solche Abfrage durchführen?
Ich werde gerne weitere Informationen / Code zur Verfügung stellen, wenn es hilft.
Lösung
Sie sollten den Kunden den direkten Zugriff in Ihrer Abfrage wie diese in der Lage sein:
from t in dataRepos.TransactionRecord
where t.Customer.Id == customerId
select t;
Unter den Abdeckungen EF wird den Customer für Sie in diesem Fall verwendet werden.