1
我使用EF與DTO分離的模型,並且因爲我需要爲許多類實現相同的功能(GetByPrimarykey
,GetBy
,GetAll
等),我認爲它會是很高興有抽象類:實體框架在查詢之外生成謂詞函數
protected List<T> GetBy(Func<T, bool> func)
{
return WorkingSet.Where(func).ToList();
}
protected T GetFirstBy(Func<T, bool> func)
{
return WorkingSet.FirstOrDefault(func);
}
public virtual T GetByPrimaryKey(K key)
{
return WorkingSet.FirstOrDefault(GetByKeyPredict(key));
}
然後簡單地實現在實現類的predicte功能:
protected override Func<MyType, bool> GetByKeyPredict(int key)
{
return (c=> c.MyTypeId==key);
}
的問題是,當我運行SQL Server事件探查,我看到了塞萊ct沒有什麼原因。如果我重寫GetByPrimaryKey
功能:
public override MyTypeGetByPrimaryKey(int key)
{
return WorkingSet.FirstOrDefault(s => s.MyTypeId== key);
}
查詢是好的,但是,我真的需要預測,因爲我們的GetBy
功能被證明是非常有用的工作。
幫助,解決問題並解釋它很好的答案:) – SimSimY 2013-02-21 13:34:12