LINQ到SQL忽略SQL Server的默认值(Linq-to-SQL ignores SQL S

2019-06-25 19:12发布

当使用LINQ到SQL,添加一列到现有的表,并设置对新列的默认值,似乎LINQ到SQL忽略默认值。 有其他人遇到这种行为? 有没有办法解决它,这样的LINQ到SQL或SQL Server自动设置默认值?

我加入的柱是类型位的,具有设定为1的默认值。

Answer 1:

我现在已经明确地通过使用来自例如固定的这个这个博客 。

partial void OnCreated() {
    if (this.DateTimeCreated == null) {
           this.DateTimeCreated = DateTime.Now;
    }
}

我需要这个传递到部分DataContext类,作为默认的自动覆盖每次你在DBML改变一些东西的时间。



Answer 2:

设置自动生成的属性为True。



Answer 3:

走进设计师,选择“OnInsert”的“自动同步”值。 当记录插入到数据库中,这将同步值。



Answer 4:

我已经看到了这一点。 你可以做的是进入l2sql设计师,查看具有默认值的表列属性。 有一个属性“自动生成值”,设置为true。

此相同的值标识列自动自动设置为true,在这种情况下,SQL Server在生成您的行ID。



Answer 5:

我面对布尔数据类型的同样的问题默认为假,当我看到数据库表不更新该值所以,我发现没有主键设置,因此当我将它进行了更新查找主键。 所以检查表,如果它有主键或没有。



Answer 6:

如果你需要在自己的代码更改值(例如,使用默认的一个类型表值),那么就不要使用“自动生成的值”或者当您尝试更新它,你会得到这一点。

构件的值类型的对象的“AlternativeQuoteStatus”“的OrderDetail”改变。 由该数据库计算或产生的构件不能被改变。

我喜欢当我创建的对象,在回退到设定值OnCreated由他人描述。



文章来源: Linq-to-SQL ignores SQL Server default value