当我执行代码时:
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;
}
我收到以下异常: Data.Repository.Integration.Test.LinqRepositoryTest.GetCustomerTxList: System.NotSupportedException:LINQ to Entities中不支持指定的类型成员'CustomerReference'。仅支持初始化程序,实体成员和实体导航属性。
CustomerReference是引用Customer实体的TransactionRecord实体上的EntityReference。
为什么我不能使用实体引用进行查询?
执行此类查询的推荐方法是什么?
如果有帮助,我很乐意提供更多信息/代码。
答案 0 :(得分:5)
您应该可以直接在查询中访问客户,如下所示:
from t in dataRepos.TransactionRecord
where t.Customer.Id == customerId
select t;
在这种情况下,EF将使用CustomerReference。