我正在使用Linq查询来连接两个表中的数据(使用Linq到SQL),逻辑如下:
我已经习惯了这一段时间并打了一堵砖墙。下面是我正在使用的代码(在LinqPad中):
var results = (from b in Banners
where b.BannerCode == "1234"
from a in b.VesselBoatAreaY.Split (',').AsEnumerable()
join r in References on a equals r.ReferenceCode
where r.Context == "TestContext"
select r.Description).ToList();
我已确认查询的第一部分有效,即横幅代码存在并返回4个单独的值。当我作为一个整体运行查询时,我得到以下内容:
NotSupportedException异常 类型'System.String []'不支持比较运算符。
我也尝试了以下内容:
var results = (from b in Banners
where b.BannerCode == "1234"
from a in b.VesselBoatAreaY.Split (',').AsEnumerable()
from r in References
where r.Context == "TestContext" &&
a.Contains(r.ReferenceCode)
select r.Description).ToList();
当我运行时,我得到以下内容:
的ArgumentException
参数'value'是错误的类型。预期'System.String'。实际'System.String []'。
任何帮助表示赞赏!
答案 0 :(得分:0)
感谢大家的帮助。我已经解决了这个问题,实际上非常容易。由于我正在阅读的表非常小,我可以将AsEnumerable应用于Banners表,它工作正常。我意识到这意味着它将在内存中进行处理,因此对于更大的表来说并不好,但它对于我需要的东西来说很好。
现在参考代码:
var results = (from b in Banners.AsEnumerable()
where b.BannerCode == "1234"
from a in b.VesselBoatAreaY.Split (',')
from r in References.AsEnumerable()
where r.Context == "TestContext" &&
a.Contains(r.ReferenceCode)
select r.Description).ToList();