我有一个 WCF 服务(服务)。服务管理数据。但是现在我在 LINQ 查询中选择数据时遇到了问题。我收到一条消息“无法将空值分配给 System.Int32 类型的成员,该类型是不可为空的值类型。”
通过第一次调试,我将完成该方法,您将完成异常行。当我将调试器行(黄色标记的行)放回“// 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。然后我没有得到任何异常。它与性能有关。我需要异步解决方案吗?
谢谢。