我有一个类似于如下的 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
中时,但我想这是过早地解决了查询并创建了整个表的巨大列表,并且我想避免,因为我正在使用电话。
我究竟做错了什么?
(注意我更改了名称和查询以使其更简单)