我正在使用来自LinqKit的PredicateBuilder构建我的查询。 这是伟大的,而且正是我所期待的。EntityFramework正在铸造问题
为了让我的代码的可重用性(表和视图),我创建了一个通用的谓词生成器类:
public class LocalPredicateBuilder<T> where T : IResort
...
var predicate = PredicateBuilder.True<T>(
暴露BuildPredicate方法。我可以这样使用它:
var predicate = new LocalPredicateBuilder<Resort>().BuildPredicate();
var resorts = _entities.Resorts.Where(predicate).ToList();
然而,当我尝试这样做,我得到这个运行时错误(顺便说一句实体对象实现IResort): 无法转换类型“ConsoleApplication1.Entities.Resort”来键入'ConsoleApplication1.Entities.IResort'。 LINQ到实体仅支持铸造实体数据模型的基本类型
我试图铸造(没有工作):
var rlist = eq.Cast<Resort>().ToList();
任何其他办法可以解决这个问题,铸造?
UPDATE
没有多少运气得到谓词使用接口工作..所以我solved my problem by going with POCOs.
我有。将无法编译,否则 – 2010-10-22 14:06:46
好吧然后它的问题,我已经添加后编辑。 – 2010-10-22 14:30:51
查询实际上返回列表所以它应该有可能进行该演员。 ISomething仅用于创建用于查询的谓词。 –
2010-10-22 16:45:25