尝试将二进制字段设置为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
基础教程推荐
- C#使用ThreadPriority设置线程优先级 2023-05-31
- C# 利用AForge实现摄像头信息采集 2023-03-04
- c# 如何实现获取二维数组的列数 2023-04-10
- C#中四步轻松使用log4net记录本地日志的方法 2022-11-23
- C#实现变量交换、斐波那契数列、质数、回文方法合集 2023-05-22
- C#实现计算器功能(winform版) 2023-05-16
- c# 实时曲线图示例代码 2023-02-25
- C# WebApi 异常处理解决方案 2022-12-26
- 基于Unity Line Renderer组件的常用属性说明 2023-04-10
- 如何使用C#扫描并读取图片中的文字 2023-04-21