我正在使用Linq-to-SQL获取一个名为 Category 的记录的表,而Record有一个名为 Level的列 ,其默认值通过数据库声明定义为-1。
我希望我的C#应用程序就像插入类别类别的新记录R一样:
我在字段 级别 中使用了 自动生成 属性,但它会导致所有情况都使用默认值插入。
答案 0 :(得分:2)
Linq2SQL根本不支持SQL默认值,因此没有任何“内置”方法可以执行此操作。 但是,您始终可以在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
是未定义级别的良好默认值,更改架构以允许NULL
为Level
“并刷新你的DBML,然后你就不用再担心了。
答案 1 :(得分:1)
这种结构应该有用。
if (R.Level == null)
linq query that does not include R.Level. Database will apply default value
else
linq query that includes R.Level