2

我们正在开发一个框架,通过一个 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))");

...那里,但我被告知不能使用这种方法。

我不知道还能做什么,任何帮助将不胜感激!

谢谢你。

4

0 回答 0