次のような 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
と、クエリが時期尚早に解決され、テーブル全体の巨大なリストが作成され、電話で作業しているので避けたいと思います。
私は何を間違っていますか?
(これを簡単にするために名前とクエリを変更したことに注意してください)