2013-10-24 8 views
1

Я использую динамическую библиотеку.Динамическая библиотека, использующая метод выбора

Я хотел бы иметь такую ​​же отдачу, как и следующий LINQ возвращает меня:

var sql = from p in context.TB_PEOPLE 
      select new 
      { 
      NAME = p.NAME, 
      PHONES = p.TB_PHONE.Select(ph => ph.PHONE) 
      }; 

У меня возникли проблемы, возвращаясь в поле из связанной таблицы, которая имеет отношение 1..n, с, например,

TB_PEOPLE> TB_PHONE 

Я пытался сделать что-то вроде:

var sql = context.TB_PEOPLE.Select("TB_PEOPLE. TB_PHONE.PHONE"); 

Но TB_PHONE является ICollection в ТБ _ЛЮДИ.

ответ

1

Я знаю, что это своего рода старый, но динамическая библиотека Linq от Microsoft не поддерживает это из коробки.

Однако, я недавно добавил поддержку для этого в моей версии Dynamic Linq Library (https://www.nuget.org/packages/System.Linq.Dynamic.Library).

Вот что будет выглядеть на основе вашего примера:

var sql = context.TB_PEOPLE.Select("new (NAME, TB_PHONE.Select(PHONE) AS PHONES)") 

Если вы используете .NET 4.0+, вы можете легко получить доступ к результатам, как это:

var phones = sql.First().PHONES; 

В противном случае, вам нужно будет использовать отражение, чтобы получить результаты.

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