Jam*_*mes 8 linq linq-to-entities entity-framework
我扩展了我的实体以实现其类型的特定接口.我正在尝试执行以下查询:
var results = from x in context.MyEntityTable
where x.AProperty == AValue
select x;
return results.Count() > 0 ? results.Cast<IApplicationEntity>().ToList() : null;
Run Code Online (Sandbox Code Playgroud)
但是,我不断收到以下错误:
"LINQ to Entities仅支持转换实体数据模型基元类型"
基本上我想要做的是始终将原始实体类型的结果转换为它实现的接口的通用列表.
这可能吗?
Meh*_*ari 20
您可以在客户端上执行强制转换,通过调用AsEnumerable
扩展方法绕过实体框架查询转换层:
return results.Any()
? results.AsEnumerable().Cast<IApplicationEntity>().ToList()
: null;
Run Code Online (Sandbox Code Playgroud)
但是,最好颠倒执行Count
检查的顺序:
var list = results.AsEnumerable().Cast<IApplicationEntity>().ToList();
return list.Count == 0 ? null : list;
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
25026 次 |
最近记录: |