我有一个类似于如下的 Linq 查询,
var dataByWheels = this.Db.Cars.Cast<IVehicle>().Where(v => (v.NumWheels == 4));
IVehicle在这种情况下,是一个定义类必须具有NumWheels属性的接口。该类Cars类似于如下,
[Table]
public class Car : IVehicle
{
[Column]
public double Weight { get; set; }
...
public int NumWheel
{
get { return 4; }
}
}
所以在这种情况下,NumWheels属性没有存储在数据库中,但是如果转换完成,那么它应该没问题。但是引发了一个异常,
The member 'MyProject.IVehicle.NumWheels' has no supported translation to SQL
这意味着它没有执行演员表。当我在它确实工作ToList()后将 a 插入链Cast中时,但我想这是过早地解决了查询并创建了整个表的巨大列表,并且我想避免,因为我正在使用电话。
我究竟做错了什么?
(注意我更改了名称和查询以使其更简单)