[英]Linq to SQL: Load default field Values ONLY for fields with NULL value
我正在使用Linq-to-SQL来创建一个表,该表具有名为Category的记录,并且Record有一个名为Level的列,其默认值通过数据库声明定义为-1。
我希望我的C#应用程序像这样插入类型为Category的新记录R:
我已经为字段级别使用了“ 自动生成”属性,但是它将导致在所有插入情况下都使用默认值。
Linq2SQL根本不支持SQL Default值,因此没有任何“内置”方法可以做到这一点。 但是,您始终可以找出SQL中列的默认值:
select DefaultValue=Column_default from from information_schema.columns where column_name='Level' and table_name='Category'
您可以在应用启动时执行该命令,并存储值(转换为正确的课程类型)供以后使用:
if (newCategoryToInsert.level==0)
{
newCategoryToInsert.level = levelDefaultValueThatIStoredEarlier;
}
dbContext.SubmitChanges();
并在Dan的方法中使用它。
但是,如果可能的话,不要理会其中任何一个,只接受NULL
是未定义级别的好默认值,更改架构以允许“ Level
”为NULL
并刷新DBML,然后就不必不用再担心了。
这种结构应该起作用。
if (R.Level == null)
linq query that does not include R.Level. Database will apply default value
else
linq query that includes R.Level
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.