我檢查了很多有這個錯誤的帖子,但沒有發現這個問題。 (另外我是新來的升C是一個Java的開發)Linq指定的演員表無效
我得到一個例外,因爲
System.InvalidCastException被抓獲
在table2.Field(」 MEME_CK「)下面的代碼片段。
有在表2 3K左右行,我不能找到一種方法,以避免錯誤的鑄件線table2.Field(「MEME_CK」)
數據可以是零,不存在的,有效的或無效。所以我嘗試在泛型參數cast上使用可爲空的運算符。還看到有可能代表不存在的值的DBNull類。
有沒有一種方法預處理列數據做「等於測試」或在下面的代碼加入過嗎? 即使使用可爲空類型後,我如何避免投射?
以下代碼基本上都聯接基於MEMBERID即MEME_CK或MemeCk的兩個數據表,並用CapHeadID,MemeCk等作爲字段創建新的對象。
var query =
(from table1 in searchResult.AsEnumerable()
join table2 in memberInfo.AsEnumerable()
on table1.Field<decimal?>("MemeCk") equals
table2.Field<decimal?>("MEME_CK")
select new
{
CapHeadID = table1.Field<decimal>("CapHeadID"),
MemeCk = table1.Field<decimal>("MemeCk"),
Suffix = table2.Field<decimal>("MEME_SFX"),
Suscriber = table2.Field<string>("SBSB_ID"),
BusinessArea = table2.Field<string>("TEAM"),
MemberName = table2.Field<string>("MemberName"),
WorkTypeName = table1.Field<string>("WrkName"),
SSN = table2.Field<string>("MEME_SSN"),
AssignedUser = table1.Field<string>("AssignedUser")
}).Distinct().OrderBy(a => (a.Suscriber.IsNotNil() ?
a.Suscriber : "")).Take(3000);
這將是有益的,如果你可以解釋這段代碼的作用。似乎沒有必要地令人費解。 –
對不起。我已經添加了上述代碼的描述。 – amit
'MEME_CK'的底層SQL類型是什麼? –