我正在编写一个查询,返回需要两个表中数据的模型列表,我希望let
关键字可以帮助我。我是这样开始的:
var TheListOfModels =
let Data1 = (from a in MyDC.Table1
where ....
select new ObjectThatContainsData1()
{
}).ToList()
let Data2 = (from b in MyDC.Table2
where ....
select new ObjectThatContainsData2()
{
}).Tolist()
select new ObjectThatContainsBothData()
{
SomeProp1 = from p in Data1
select everything
SomeProp2 = from a in Data2
select everything
}).ToList()
我不太清楚如何继续并编写最终select
语句,该语句从2 let
子句的结果中选择而不是直接从表中选择。查询的结构是我写的一个好的起点还是我应该用另一种方式写出来?
感谢。
每条评论编辑:表格定义
Table1看起来有点像这样:
PeachID | UserID | HarvestDateTime | SomeOtherColumn
表2看起来像这样:
AppleID | UserID | HarvestDateTime | SomeOtherColumn
我希望将所有桃子和苹果提取到ObjectThatContainsBothData
列表中,而where子句基本上用于过滤HarvestDateTime
和UserID
答案 0 :(得分:3)
看起来您正在尝试将Linq查询语法应用于序数C#代码。只需创建对象并执行两个查询即可获取两个属性的数据:
var result = new ObjectThatContainsBothData()
{
SomeProp1 = db.Peaches.Where(...).Select(...).ToList(),
SomeProp2 = db.Apples.Where(...).Select(...).ToList()
};