gpt4 book ai didi

entity-framework - EF Core 向具有默认值的可空列插入空值

转载 作者:行者123 更新时间:2023-12-03 21:31:16 28 4
gpt4 key购买 nike

我对使用 EF Core 时 SQL 中的特定场景感到好奇。
例如,有一列允许 null 并且同时具有默认值,这是不寻常的情况,但这不是这里的问题。
问题是关于技术可能性的。

[SomeId] [uniqueidentifier] NULL DEFAULT (newsequentialid())

在应用程序中有具有适当属性的实体(代码优先)
public Guid? SomeId { get; set; }

问题是如何将此实体插入数据库,以便 SomeId 具有 Null 值。因为即使属性为 Null,数据库也会用默认值覆盖它。

这可以通过将空值显式分配给列来使用纯 sql 来完成,但似乎无法使用 EF 来完成,或者我错了吗?

编辑:
详细说明
public class ExampleTable
{
[Key]
int Id { get; set; }

string Name { get; set; }

Guid? SomeId { get; set; }
}

以种子方法为例:
var record1 = new ExampleTable
{
FirstName = "Carson"
}
var record2 = new ExampleTable
{
FirstName = "Carson",
SomeId = null
}
context.ExampleTableSet.Add(record1);
context.ExampleTableSet.Add(record2);
context.SaveChanges(record);

记录 1 和记录 2 是相同的,因为 SomeId 是可为空的 Guid?,并且在这两种情况下,在数据库中提交 SomeId 后都从 newsequentialid 中获得了实际值。
有没有办法将 SomeId Null 也保留在数据库中。

最佳答案

我不确定我是否完全理解这个问题,但是通过修改您的声明,您可以设置默认值。在创建记录时,'SomeId' 将默认为 NULL

    public class ExampleTable
{
public ExampleTable()
{
SomeId = null;
}

public Guid? SomeId { get; set; }
}

关于entity-framework - EF Core 向具有默认值的可空列插入空值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41969303/

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