【发布时间】:2016-07-14 14:10:42
【问题描述】:
我正在尝试使用动态 linq 来查询数据。现在我有一个(正常的)linq 查询,例如:
from u in c.Users
from d in u.Documents
select d.DocumentID
我正在动态 linq 中寻找与此等效的内容。重点是如何从 User 实体导航到 Document 实体。我可以这样做:
c.Users.Select("new (UserName)");
但我当然做不到:
c.Users.Select("new (Documents.DocumentID AS DocumentID)");
我认为我可以做类似的事情:
var q = c.Users.Select("Documents");
q.Select("new (DocumentID)");
但这不起作用。
我发现了大量在 where 子句中使用导航属性的示例。我已经能够在 where 子句中使用它们,但不能在 select 中使用它们。
我发现了一个例子:
c.Users.SelectMany("Documents").Select("new (DocumentID)");
但是,动态 linq 似乎不支持 selectMany。至少当包含动态 linq 时,selectman 接受字符串作为输入似乎没有任何过载。
有没有人可以把我推向正确的方向?我也欢迎关于如何在没有动态 linq 的情况下执行 selectmany 的建议,只要“文档”部分和选择列表(在这种情况下,“文档 ID”是动态的,可以通过字符串输入确定
【问题讨论】:
标签: c# dynamic-linq