如何以更好的方式编码此LINQ查询

时间:2012-12-07 13:17:59

标签: c# linq

我有一个LINQ查询。我不太了解LINQ。我正在研究实体框架。我必须根据输入日期(CDate)获取记录。假设结构是这样的。

          Table A                                Table B

       Id          CDate                   Id            No         A_Id

       1          11-11-2012                1            1001         1
       2          11-11-2012                2            1002         1
       3          12-12-2012                3            1003         2

根据此表定义,如果输入日期类似于11-11-2012,则输出应该是,

    Table B

    Id        No

     1        1001
     2        1002
     3        1003
像上面这样的东西。我试过这个,但它不起作用。请看看这段代码。

代码

     var model = (from x in Db.TableB
                  where x.TableA.CDate == 'Input Value'    // 11-11-2012
                         select new ViewModel
                         {
                         }).Tolist();

请告诉我可以编写代码来获取相应输入日期的Distinct值的可能性。

谢谢,

1 个答案:

答案 0 :(得分:3)

你想要这样的东西吗?

var model = (from x in Db.TableB
     join y in Db.TableB on x.ID equals y.ID
     where x.TableA.CDate == 'Input Value' //11.11.2012
     select new  
     {  
         x.ID,
         y.No 
     }).ToList();

输出:

Id        No

 1        1001
 2        1002

<强>更新

var model = (from x in Db.TableB
            where x.TableA.CDate == 'Input Value' //11.11.2012
            select new  
            {  
                x.ID,
                x.No 
            }).ToList();

对不起,首先,我认为存在一对一的关系。但是你的实体有一对多的关系。您的代码是正确的,只需添加

select new  
{  
     x.ID,
     x.No 
}).ToList();