我正在编写一个查询,返回需要两个表中的数据的模型列表,我希望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
子句的结果中选择,而不是直接从表中选择。我写的查询结构是一个好的起点还是我应该用另一种方式写?
谢谢。
编辑每个注释:表定义
表1看起来有点像这样:
PeachID | UserID | HarvestDateTime | SomeOtherColumn
表2如下所示:
AppleID | UserID | HarvestDateTime | SomeOtherColumn
我想把所有的桃子和苹果提取到ObjectThatContainsBothData
的列表中,where子句基本上是用来过滤HarvestDateTime
和UserID
的
看起来您正在尝试将Linq查询语法应用于顺序c#代码。只需创建对象并执行两个查询,从两个属性中获取数据:
var result = new ObjectThatContainsBothData()
{
SomeProp1 = db.Peaches.Where(...).Select(...).ToList(),
SomeProp2 = db.Apples.Where(...).Select(...).ToList()
};