有没有办法构建以前定义的LINQ查询的select子句?
例如:
var stuffQuery =
from stuff in MyStuff
select new {
stuff.Name
};
var query2 =
from stuff in stuffQuery
join otherStuff in YourStuff on stuff.Name equals otherStuff.Name
select new {
stuff.*, // how can I accomplish this?
YourStuff = new {
otherStuff.PropertyX
}
};
我想要的结果是一个像这样的对象:
string Name
anonymous YourStuff
string PropertyX
我考虑过使用“Combine”方法,这种方法可以将我的两个匿名对象组合成动态。但Linq-to-Sql不知道如何处理该方法。
相反,我认为我需要一个返回select表达式的方法。它的参数将是第一个Queryable,以及第二个Queryable的select表达式。类似的东西:
var query2 =
from stuff in stuffQuery
join otherStuff in YourStuff on stuff.Name equals otherStuff.Name
GetCombinedSelectClause(stuffQuery, new {
YourStuff = new {
otherStuff.PropertyX
}
});
我怎样才能做到这一点?我没有嫁给任何特定的语法风格。但是,我不想使用基于字符串的解决方案(例如System.Linq.Dynamic)。
答案 0 :(得分:0)
ExpandoObject怎么样?我相信它可以完全满足您的需求。
答案 1 :(得分:0)
我的问题可能不是最好的措辞。但是,我不认为LINQ查询旨在实现我追求的目标。
我正在结束这个问题,因为我根本不认为答案是可以实现的。