我正在使用动态库。
我希望得到与以下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是TB_PEOPLE中的ICollection。
答案 0 :(得分:1)
我知道这有点旧,但微软的Dynamic Linq Library不支持开箱即用。
但是,我最近在我的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;
否则,您将不得不使用反射来获得结果。