gpt4 book ai didi

sql - 为什么我在 SQL Server 中看到的默认字段没有反射(reflect)在 LINQ 中

转载 作者:行者123 更新时间:2023-12-02 11:22:17 24 4
gpt4 key购买 nike

我确实将默认值设置为 SQL Server 中的字段。现在我正在使用 LINQ 访问/追加/修改和删除表中的记录,但我想知道为什么需要为插入时具有默认值的字段分配值。考虑这行代码。

SQL

CREATE TABLE SampTable
(
sysid int not null primary key identity(1,1),
values1 bigint not null default(0), --> consider my default is predefined
values2 datetime not null default(getdate())
)

使用 LINQ 的 C#

SampleTable entity = new SampleTable();
entity.values1 = 1;
entity.values2 = DateTime.Now //I do have default set on sql why do i need to do this
//Do Something

最佳答案

您使用的 ORM 映射器(可能是 DBML)不会从数据库复制默认约束。这并不是一件坏事——如果您更改数据库中的默认值会发生什么?一些旧代码可能仍然在其 ORM 中保留旧默认值的副本!这可能会变得相当困惑。

我建议您自己开始编写 SQL。 SQL 的难度不及编写或定制 ORM 的一半。 C# 代码中的存储过程或 insert 语句都可以。

关于sql - 为什么我在 SQL Server 中看到的默认字段没有反射(reflect)在 LINQ 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8264162/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com