我有一个在EF(6.0)上运行的项目,并尝试使用OData来实现简单的制表功能。
为了实现这一点,我们有很多垂直切片正在处理IQueryable<T>
,从DbContext
到Controller。
我们将域模型映射到这些片中的VM,这是有效的,因为LinqToEntities具有强大的功能,并将这些C#对象映射语句转换为SQL。我们的映射方法采用IQueryable<DomainModel>
,调用.Select()
并返回IQueryable<ViewModel>
但是我们的某些映射代码非常复杂,以至于我们正在限制LinqToEntities可以处理的范围,因此有时我们会编写可编译的代码,但是在运行时LinqToEntities告诉我们它太难了,不受支持:< / p>
LINQ to Entities无法识别方法'System.String ToString(System.String)',并且该方法无法转换为商店表达式。
很好,我们很乐意在这些限制内工作。但是我很想进行快速的单元测试,以警告我这种错误。
如何对我的映射代码是否与LinqToEntities兼容进行单元测试?
IQueryable
,但是似乎不起作用。
有关错误的直接问题,请参见此处:Error when trying to test an isolated IQueryable
但是,即使我可以使代码执行,但我不确定这是否会真正起作用?
实现此目标的最佳方法是什么?