具有不同数据类型的LINQ连接
我有一种情况,我试图在两个表上进行连接 表一的内容如下:具有不同数据类型的LINQ连接,linq,Linq,我有一种情况,我试图在两个表上进行连接 表一的内容如下: User ID john 1 mary 3 tim 4 表2有以下内容:(注意表2中的ID是逗号分隔的。注意表2中的每个ID都是唯一的。) 正如您在表2的第一行中所看到的,与用户tim匹配,因为他们都有4个,所以公司100是关联的 问题在于LINQ,我不知道如何在这两个表之间进行连接 您可以拆分公司表ID,并将其格式化为更可读的列表: var companiesReadable
User ID
john 1
mary 3
tim 4
表2有以下内容:(注意表2中的ID是逗号分隔的。注意表2中的每个ID都是唯一的。)
正如您在表2的第一行中所看到的,与用户tim匹配,因为他们都有4个,所以公司100是关联的
问题在于LINQ,我不知道如何在这两个表之间进行连接 您可以拆分公司表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});
希望它能有所帮助尝试使用类似于使用单引号的
like
子句之类的方法
var res = from Table1
join Table2
on SqlMethods.Like(Table1.Id , '\'' + Table2.Id + '\'')
select ....
我无法测试这一点,但我的答案是基于
如果linq to sql要清除,表2有一个逗号分隔的值列表,应该可以工作吗?是的,这是正确的。这是现有系统还是新系统?如果是新的,为什么不为这种固有的多对多关系使用一个中间映射表呢?这是一个现有的系统。表2中的每个ID都是唯一的。您最好创建一个能够更好地规范表2中数据的视图。
var res = from Table1
join Table2
on SqlMethods.Like(Table1.Id , '\'' + Table2.Id + '\'')
select ....