C# linq上两个数据表之间的左外联接
我有两张桌子:C# linq上两个数据表之间的左外联接,c#,.net,linq,left-join,C#,.net,Linq,Left Join,我有两张桌子: id | code code | name ---------- ------------- 1 | 001 001 | first 2 | 002 002 | second 3 | 001 结果必须是 id | name ---------- 1 | fisrt 2 | second 3 | first 我的linq查询: var query = from content in result.Tables["Speci
id | code code | name
---------- -------------
1 | 001 001 | first
2 | 002 002 | second
3 | 001
结果必须是
id | name
----------
1 | fisrt
2 | second
3 | first
我的linq查询:
var query = from content in result.Tables["Special_Contents_Tree"].AsEnumerable()
join iNames in result.Tables["Special_Contents_ItemNames"].AsEnumerable()
on content.Field<Nullable<Int16>>("Code") equals iNames.Field<Nullable<Int16>>("Code") into outer
from gr in outer.DefaultIfEmpty()
select new
{
ID = (Int16)content["ID"],
Name = gr["Name"]
};
DataTable SpecialContent = new DataTable();
SpecialContent.Columns.Add("ID");
SpecialContent.Columns.Add("Name");
foreach (var q in query)
{
SpecialContent.Rows.Add(q.ID, q.Name);
}
但是结果是错误的-result.Tables[Special\u Contents\u Tree].Rows.Count=323然后SpecialContent.Rows.Count应该是323,但是SpecialContent.Rows.Count=484。您查看了结果吗?为什么会有更多的争吵?重复值?特殊内容树中的id和特殊内容项名中的代码是否唯一?@Uriel\u SVK我发现一个错误。你说得对。我的第二个表在代码列中包含重复的值。