C# linq连接问题

C# linq连接问题,c#,linq,C#,Linq,假设我们有两张这样的表: MyModel{ public DateTime TheDate {get;set;} public int Data1 {get;set;} public int Data2 {get;set;} public int Data3 {get;set;} } 表1 | date | data1 | | 3/2/2011 | xyz | | 3/4/2011 | abc | 表2 | date | data2 | data

假设我们有两张这样的表:

MyModel{
  public DateTime TheDate {get;set;}
  public int Data1 {get;set;}
  public int Data2 {get;set;}
  public int Data3 {get;set;}
}
表1

|   date   | data1 |
| 3/2/2011 |  xyz  |
| 3/4/2011 |  abc  |
表2

|  date    |  data2  |  data3  |
| 3/2/2011 |  def    |   ghi   |
| 3/9/2011 |  jkl    |   mno   |
我们如何编写一个连接来获取

|日期|数据1 |数据2 |数据3
|

假设MyModel的定义如下:

MyModel{
  public DateTime TheDate {get;set;}
  public int Data1 {get;set;}
  public int Data2 {get;set;}
  public int Data3 {get;set;}
}
我知道我们必须使用DefaultIfEmpty,但当两个表的第2行都没有对应的日期行时,我不知道如何合并这两个表


谢谢你的建议。

在语句中,t1.date==t2.date,t2。日期不出现在intellisense中。我只是用from替换let语句,它似乎可以工作;至少没有语法错误。
var results = from t1 in table1
              let t2 = (from t in table2 select t)
              where t1.date == t2.date
              select new MyModel {
                TheDate = t1.date == null ? t2.date : t1.date,
                Data1 = t1.data1,
                Data2 = t2.data2,
                Data3 = t2.data3
              };