C# 全局重写Linq到SQL以将对象字符串保存为空字符串而不是NULL

C# 全局重写Linq到SQL以将对象字符串保存为空字符串而不是NULL,c#,sql,linq,linq-to-sql,C#,Sql,Linq,Linq To Sql,当保存一个字符串属性未显式设置为空字符串的对象时,LINQ to SQL将尝试使用空值插入此记录 我同意这是它应该如何工作的。但是,对于我正在写入的特定数据库,我希望全局覆盖此功能以始终保存空字符串 这可能吗?您需要这样的东西: 公共部分类NorthwindDataContext { 公共覆盖无效提交更改(冲突模式故障模式) { this.EmptyNullProperties(); 基本提交更改(故障模式); } 私有void EmptyNullProperties() { var prope

当保存一个字符串属性未显式设置为空字符串的对象时,LINQ to SQL将尝试使用空值插入此记录

我同意这是它应该如何工作的。但是,对于我正在写入的特定数据库,我希望全局覆盖此功能以始终保存空字符串


这可能吗?

您需要这样的东西:

公共部分类NorthwindDataContext
{
公共覆盖无效提交更改(冲突模式故障模式)
{
this.EmptyNullProperties();
基本提交更改(故障模式);
}
私有void EmptyNullProperties()
{
var propertiesToEmpty=
从此.GetChangeSet()插入中的实体
来自entity.GetType().GetProperties()中的属性
其中property.CanRead和&property.CanWrite
其中property.PropertyType==typeof(字符串)
其中property.GetValue(实体)==null
选择新{实体,属性};
foreach(propertiesToEmpty中的var对)
{
pair.property.SetValue(pair.entity,string.Empty);
}
}
} 

您需要这样的东西:

公共部分类NorthwindDataContext
{
公共覆盖无效提交更改(冲突模式故障模式)
{
this.EmptyNullProperties();
基本提交更改(故障模式);
}
私有void EmptyNullProperties()
{
var propertiesToEmpty=
从此.GetChangeSet()插入中的实体
来自entity.GetType().GetProperties()中的属性
其中property.CanRead和&property.CanWrite
其中property.PropertyType==typeof(字符串)
其中property.GetValue(实体)==null
选择新{实体,属性};
foreach(propertiesToEmpty中的var对)
{
pair.property.SetValue(pair.entity,string.Empty);
}
}
} 

@aherrick:您知道吗,您可以通过使用LINQ to SQL在实体上放置的元数据(属性)(如最大长度和非空约束)来添加对DataAnnotations和验证应用程序块的支持@aherrick:您知道吗,您可以通过使用LINQ to SQL在实体上放置的元数据(属性)(如最大长度和非空约束)来添加对DataAnnotations和Validation应用程序块的支持。