4

我正在编写一个查询,该查询返回需要来自两个表的数据的模型列表,我希望该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()

我不太确定如何继续并编写从 2 个子句的结果中选择而不是直接从表select中选择的最终语句。let我正在编写的查询结构是一个好的起点还是应该以另一种方式编写?

谢谢。

根据评论编辑:表定义

表 1 看起来有点像这样:

PeachID | UserID | HarvestDateTime | SomeOtherColumn

表 2 看起来像这样:

AppleID | UserID | HarvestDateTime | SomeOtherColumn

我希望将所有桃子和苹果提取到一个列表中,ObjectThatContainsBothData并且 where 子句基本上是用来过滤HarvestDateTimeUserID

4

1 回答 1

3

看起来您正在尝试将 Linq 查询语法应用于序号 C# 代码。只需创建您的对象并执行两个查询即可从两个属性中获取数据:

var result = new ObjectThatContainsBothData() 
             {
                 SomeProp1 = db.Peaches.Where(...).Select(...).ToList(),
                 SomeProp2 = db.Apples.Where(...).Select(...).ToList()  
             };
于 2013-01-19T17:59:36.427 回答