2016-09-11 79 views
-2

我在我的代碼中調用下面的方法,但無法形成表達式樹,請建議。需要檢索表中的醫生名稱的詳細信息?

m1.FindSingleBy<Doctor_Details>(m1 => m1.Doctor_Name == "a"); 


public virtual T FindSingleBy<T>(Expression<Func<T , bool>> predicate) where T : class 
    { 
     if (predicate != null) 
     { 

      Dolphin_PatientEntities1 contxt = new Dolphin_PatientEntities1(); 
      using (contxt) 
      { 
       return contxt.Set<T>().Where(predicate).SingleOrDefault(); 
      } 
     } 
     else 
     { 
      throw new ArgumentNullException("Predicate value must be passed to FindSingleBy<T>."); 
     } 
    } 
+1

問題是? –

+2

我倒下了這個問題,因爲它不包含代碼,沒有問題,並要求爲作者編寫代碼。 –

回答

3

在實體框架中,DbSet<T>類是你的倉庫和DbContext是你UnitofWork。在Dbset<T>,你有一個像Add()Find()Remove()Where()

它保持在內存中的業務對象已 改變了交易過程中(插入,更新或刪除)的列表的方法。一旦 交易完成,所有這些更新都會作爲一個大單位發送,以便一次性物理保存在數據庫中。

的更多信息,請Unit of Work

+0

謝謝,但能否詳細解釋工作單元的概念。 – Anish

1

我想建議按照以下提到的文章,以瞭解repository and unit of work patterns。如果你跟隨它後有任何問題,請隨時再次問吧。

儲存庫和工作模式單元旨在創建數據訪問層和業務邏輯 層的應用程序之間的 抽象層。實現這些模式可以幫助您將應用程序與數據存儲區中的更改隔離開來,並且可以有助於自動化單元測試或測試驅動開發(TDD)。

enter image description here

這是第二條:Implementing the Repository and Unit of Work Patterns

0

我是新來存儲庫模式,但你通常在哪裏存儲結果,所以你沒有命中數據庫每次?實體框架照顧這個?