我有一个主表类别。
ID | Name
----------
1 | Category1
2 | Category2
3 | Category3
4 | Category4
另一个表格详细信息有
字段ID | CategoryId | Detail
--------------------
1 | 1,2,3 | Test1
2 | 3,4 | Test2
此处,类别ID存储为逗号分隔值。 现在我希望结果为
ID | CategoryName
----------------
1 | Category1,Category2,Category3
2 | Category3,Category4
AnyOne有想法.. ??
答案 0 :(得分:0)
您可以使用链接:
private static void commaSeperate(List<classname> obj)
{
string delimeter = ",";
Console.WriteLine(obj.Aggregate((i, j) => new classname { Name = (i.Name + delimeter + j.Name) }).Name);
Console.ReadKey();
}
这只是一个样本,请根据您的条件进行修改。
希望这会对你有所帮助。
答案 1 :(得分:0)
如果我们首先将数据检索到内存中,这可能是解决方案。
var q = from d in Details
from m in Master
select new {Id = d.Id, CategoryName = String.Join(m.Where(i=> d.CategoryId.Split(',').Cast<int32>().Contains(i.Id).Select(i => i.Name).ToArray(), ',')}
答案 2 :(得分:0)
您无法加入这两个表,但我认为以下查询适用于您的结果:
(from de in datacontextobj.Details
from ca in datacontextobj.Category
where de.CategoryId.Contains(ca.ID)
select de.ID, ca.Name).ToList();