在我的數據庫中,我擁有屬性爲int DeleteState
的表。我想要一個通用的方法來查詢這些表。換句話說,這樣做的方法是:Context.Table.Where(x => x.DeleteState == 0)
。實體框架中的通用查詢方法
我想我能做到這一點:
public static class Extensions
{
public static IQueryable<T> Exists<T>(this IQueryable<T> qry) where T : IDeletable
{
return qry.Where(x => x.DeleteState == 0);
}
}
哪裏IDeletable
是這樣的:
public interface IDeletable
{
int DeleteState { get; set; }
}
現在我只需要添加在EF模式IDeletable
:
public partial class Table : EntityObject, IDeletable { ... }
我使用模板機制來做到這一點。
不幸的是,它不工作:(它編譯罰款,但在運行時拋出:
Unable to cast the type 'Table' to type 'IDeletable'. LINQ to Entities only supports casting Entity Data Model primitive types
,如果我把它叫做這樣的:
Context.Table.Exists();
我怎樣才能解決這個問題問題?你能想到一個修復或不同的方法來實現類似的結果嗎?Thx
Thx,hi hi NT。 – duedl0r 2011-12-16 10:06:59