我们正在开发一个框架,通过一个 url,根据实体框架映射的实体生成查询。
我们正在使用动态库(http://lcs3.syr.edu/faculty/fawcett/handouts/CoreTechnologies/CSharp/samples/CSharpSamples/LinqSamples/DynamicQuery/Dynamic%20Expressions.html),我们正在努力返回这些领域关系 1..N.
例子:
TB_PEOPLE > TB_PHONE
基于这个关系,我需要完成跟linq一样的思路:
var sql = from p in context.SomeTable
select new {
NAME = p.NAME,
PHONES = p.TB_PHONE.Select(ph => ph.PHONE)
};
由于我不使用打字,我们选择使用动态库,因为显然允许我们灵活地操作字符串以返回。然后按照相同的想法,我们设置以下行:
var sql = context.SomeTable.Select("new (TB_PEOPLE.TB_PHONE.PHONE)");
在这种情况下,返回一个错误,说明属性“PHONE”当然不存在“TB_PEOPLE”!以至于我们试图说这个属性属于表“TB_PHONE”,但他不明白。
所以我问你,我如何只返回关系可以为N的实体的某些字段?还尝试调用方法“Select”:
var sql = context.SomeTable.Select("new (TB_PEOPLE.TB_PHONE.Select(PHONE))");
...那里,但我被告知不能使用这种方法。
我不知道还能做什么,任何帮助将不胜感激!
谢谢你。