尝试将二进制字段设置为null会给我一个ArgumentNull异常.我可以将字段设置为空,就像这个新的Binary(new byte [] {});但这不是空的只是一个空列.是否有使用LinqToSql的解决方法?解决方法:你还有别的事情要发生.我刚刚...

尝试将二进制字段设置为null会给我一个ArgumentNull异常.
我可以将字段设置为空,就像这个新的Binary(new byte [] {});但这不是空的只是一个空列.是否有使用LinqToSql的解决方法?
解决方法:
你还有别的事情要发生.我刚刚创建了一个带有id(标识),可空varbinary(MAX),非可空varbinary(MAX)和时间戳的小样本表.使用以下代码可以正常工作,没有错误.
using (var context = new TestDataContext())
{
var binarySample = new BinarySample
{
Image = null,
NonNullImage = new Binary( new byte[0] ),
};
context.BinarySamples.InsertOnSubmit( binarySample );
context.SubmitChanges();
}
此代码正确抛出(并捕获)SQLException,而不是ArgumentNullException.
try
{
using (var context = new TestDataContext())
{
var binarySample2 = new BinarySample
{
NonNullImage = null,
Image = new Binary( new byte[0] )
};
context.BinarySamples.InsertOnSubmit( binarySample2 );
context.SubmitChanges();
}
}
catch (SqlException e)
{
Console.WriteLine( e.Message );
}
您是否可能有一个部分类实现具有抛出ArgumentNullException的属性的SendPropertyChanging处理程序?
编辑:基于OP的评论.
请注意,您不能直接将bin []类型的变量分配给Binary,因为它调用implicit conversion operation并且隐式转换将抛出ArgumentNullException.在尝试分配值之前,应检查该值是否为null,如果byte []变量为null,则只需指定null.对我来说,这似乎是奇怪的行为,我希望他们将来会改变它. MSDN文档表明在将来的版本中可能会发生某些更改.
本文标题为:c# – 将Linq To Sql Binary字段设置为null


基础教程推荐
- 算法证明每一位都相同十进制数不是完全平方数 2023-06-08
- C# 三种方式实现Socket数据接收 2023-05-05
- Unity使用摄像机实现望远镜效果 2023-02-03
- C#设置或验证PDF文本域格式的方法详解 2023-05-11
- c# – 从Windows窗体到WPF 2023-09-20
- 仅在.NET Core 2.0运行时的Linux上缺少运行时存储库错误 2023-09-26
- Unity实现图形相交检测 2023-02-16
- C# using的本质及使用详解 2023-07-04
- C#多线程系列之任务基础(二) 2023-05-21
- C# 标准事件流实例代码 2023-03-08