我们正在开发一个框架,通过一个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的实体的某些字段?还尝试调用方法“选择”:
var sql = context.SomeTable.Select("new (TB_PEOPLE.TB_PHONE.Select(PHONE))");
...但我被告知此方法无法使用。
我不知道还能做什么,任何帮助都将不胜感激!
谢谢。