私はWCFサービス(サービス)を持っています。サービスはデータを管理します。しかし、LINQ クエリでデータを選択すると問題が発生します。「null 非許容値型である System.Int32 型のメンバーに null 値を割り当てることはできません。」というメッセージが表示されます。
メソッドを最初にウォークスルーするときにデバッグすることで、例外行まで終了します。デバッガーの行 (黄色でマークされた行) を "// 08" 行に戻してから、メソッドを実行すると、すべてうまくいきます。
private static ResultClass Geselecteerd(int AID_Artiest) // 01
{ // 02
ResultClass _Result = new ResultClass(); // 03
string sMethodName = System.Reflection.MethodBase.GetCurrentMethod().Name;// 04
// 05
try // 06
{ // 07
var recArtiest = (from artiest in DatabaseControl.GetDatabeheer.DataContext.ARTIESTs // 08
where artiest.ID_ARTIEST == AID_Artiest
select artiest).SingleOrDefault();
if (recArtiest != null)
{
ArtiestDataType.ID_Artiest = recArtiest.ID_ARTIEST;
ArtiestDataType.Artiestnaam = recArtiest.ARTIESTNAAM;
ArtiestDataType.Voorvoegsel = recArtiest.VOORVOEGSEL;
ArtiestDataType.Product = recArtiest.PRODUCT;
ArtiestDataType.ID_Categorie = recArtiest.ID_CATEGORIE;
ArtiestDataType.ID_Genre = recArtiest.ID_GENRE;
ArtiestDataType.Is_Band = BasisDataType.GetBoolString(recArtiest.IS_BAND);
ArtiestDataType.Land = recArtiest.LAND;
ArtiestDataType.Plaats = recArtiest.PLAATS;
ArtiestDataType.Website = recArtiest.WEBSITE;
ArtiestDataType.DatumInvoer = recArtiest.DATUM_INVOER;
ArtiestDataType.DatumMutatie = recArtiest.DATUM_MUTATIE;
}
}
catch (Exception ex)
{
string sFoutmelding = "Kan geen selectie maken.";
FLogboek.AddFoutmelding(FClassName, sMethodName, sFoutmelding, ex.Message);
_Result.Code = ResultCode.FATAAL;
_Result.Melding = sFoutmelding;
}
return _Result;
}
ID_ARTIEST は整数フィールドであり、主キーでもあります。フィールドの値は必須であり、NULL 値は使用できません。
この方法は常に機能しています。新しいサービスを追加すると問題が発生します。
私の質問は次のとおりです。何が間違っていますか? サービスと関係ありますか?プロセスを遅らせる必要がありますか? 誰かヒントをくれませんか?私は8つのサービス参照を持っています。重要なソースが不足している場合は、追加できます。
現在、回避策しかありません。try-catch 領域内に try-catch を追加しました。そして、例外はありませんでした。それはパフォーマンスと関係があります。非同期ソリューションが必要ですか?
ありがとう。