我有一套我用Linq和NHibernate獲取的子類域對象。這裏是什麼,我有一個例子:我可以允許查詢的對象影響用Linq和NHibernate獲取它們的查詢嗎?
public abstract class Car {
public abstract bool Runs();
}
public class Junker : Car {
public override bool Runs() {
return false;
}
}
public class NewCar : Car {
public override bool Runs() {
return true;
}
}
我需要做的僅僅是Run()
去取車。所以,我想這樣做:
var goodCars = _session.Query<Car>().Where(car => car.Runs());
...但是,這並不工作,因爲Runs()
是不支持查詢源。這裏的錯誤,我得到:
Cannot parse expression 'car' as it has an unsupported type. Only query sources (that is, expressions that implement IEnumerable) and query operators can be parsed.
我已經試過分開查詢分爲兩個步驟:1)讓所有的汽車,2)過濾器通過Runs()
......但我不能這樣做,因爲它打破延遲加載(我的域模型比我的汽車示例稍微複雜一些)。此外,我只想從數據庫中提取實際符合我的查詢的項目。
有沒有辦法做我想做的事情?
你忘了命名變量。 – gdoron 2012-01-10 19:58:21
自動屬性,不需要後臺字段。 – 2012-01-10 20:20:28
這不會編譯...嘗試自己。 – gdoron 2012-01-11 07:10:38