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.

War es hilfreich?

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.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top