2014-01-25 41 views
0

例如:在Linq-EF中使用`Include`有沒有更好的方法?

var emp = db.Employees 
      .Include("CostCenter") 
      .Single(e => e.Id == 123); 

我不喜歡使用魔法字符串包括在我的查詢導航屬性的想法,是有這樣做的更簡潔的方式?我問這是因爲最近我改變了一個導航屬性的名字,我不得不手動改變它,它看起來不太好。

+0

您可以創建一個擴展做.include使用反射來獲取屬性的名稱。 –

回答

2

是的,你可以嘗試使用lambda表達式。所有的 首先在項目中包含相應的擴展:

System.Data.Entity.DbExtensions 

然後添加適當的命名空間:

using System.Data.Entity; 

現在你可以開始使用這樣的:

var emp = db.Employees 
      .Include(x => x.CostCenter) 
      .Single(e => e.Id == 123); 
+0

非常感謝。它像一個魅力:) –

相關問題