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
};