我很好奇使用 EF Core 时 SQL 中的具体场景。
例如,有一列允许为空,同时具有默认值,这是不寻常的情况,但这不是这里的问题。
问题是关于技术可能性。
[SomeId] [uniqueidentifier] NULL DEFAULT (newsequentialid())
在应用程序中有一个具有适当属性的实体(代码优先)
public Guid? SomeId { get; set; }
问题是如何将此实体插入数据库以便SomeId将具有 Null 值。因为即使属性为 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 相同,因为SomeIdGuid 是否可以为空?,并且在提交后的两种情况下SomeId在数据库中获取真正的价值新闻序列ID。
有什么办法可以保留SomeId数据库中也为空。
我不确定我是否完全理解这个问题,但通过修改您的声明,您可以设置默认值。创建记录时,“SomeId”将默认为NULL
public class ExampleTable
{
public ExampleTable()
{
SomeId = null;
}
public Guid? SomeId { get; set; }
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)