[英]Comparison operators not supported for type 'System.String[]'
[英]Comparison operators not support for 'System.String[]' in a Linq query
我正在研究一個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
參數“值”是錯誤的類型。 預期為“ System.String”。 實際的“ System.String []”。
任何幫助表示贊賞!
謝謝大家的幫助。 我已經解決了這個問題,實際上很容易。 由於我要讀取的表很小,因此我可以將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();
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.