LINQ JOIN具有不同的数据类型

时间:2017-04-06 17:45:01

标签: linq

我有一种情况,我试图在2张桌子上进行连接。

表一具有以下内容:

 User       ID
 john       1 
 mary       3
 tim        4

表2具有以下内容:(请注意,表2中的ID以逗号分隔。请注意,表2中的每个ID都是唯一的。)

company         ID
 100           '150', '4', '9'   
 101           '102','2', '10'

正如您在表2的第一行中看到的那样,与用户tim匹配,因为它们都有4个,因此公司100关联。

问题与LINQ有关我不知道如何在这两个表之间进行连接。

2 个答案:

答案 0 :(得分:0)

您可以拆分公司表ID并将其格式化为更易读的列表:

var companiesReadableList =
            companies.SelectMany(x => x.ID.Replace("'", "").Split(',').Select(y => new {ID = y.Trim(), company = x.company}));

剩下的就是加入用户表:

var joinedView = users.Join(companiesReadableList, user => user.ID.ToString(), company => company.ID,
            (user, company) => new {user.user, user.ID, company.company});

希望有所帮助

答案 1 :(得分:0)

尝试使用带有单引号的like子句

var res = from Table1
join Table2 
on SqlMethods.Like(Table1.Id , '\'' + Table2.Id + '\'')
select ....

我无法对此进行测试,但我的答案基于this

如果linq-to-sql

应该有效