2014-01-25 8 views
0

Например:Есть ли более простой способ использования `Include` в Linq-EF?

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

мне не нравится идея использовать магические строки, чтобы включить навигационные свойства в моем запросе, есть более изящный способ сделать это? Я спрашиваю об этом, потому что недавно я изменил имя свойства навигации, и мне пришлось изменить это вручную, это просто не выглядит красивым.

+0

Вы можете создать расширение, чтобы сделать .include using reflection, чтобы получить имя свойства. –

ответ

2

Да, вы можете попробовать использовать лямбда-выражения. Прежде всего включают в себя соответствующие расширения в вашем проекте:

System.Data.Entity.DbExtensions 

Затем добавить соответствующее пространство имен:

using System.Data.Entity; 

Теперь вы можете начать использовать это:

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

Большое вам спасибо. Оно работало завораживающе :) –

Смежные вопросы