我很好奇使用EF Core时SQL中的特定场景。 例如,有一个列允许null并且同时具有defalut值,这是不寻常的情况,但这不是问题。 问题是技术可能性。
[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是相同的,因为 SomeId 是可以为空的Guid ?,在两种情况下,在数据库中提交 SomeId 之后,从 newsequentialid获取实际值。 有没有办法在数据库中保持 SomeId Null。
答案 0 :(得分:0)
我不确定我是否完全理解了这个问题,但通过修改声明,您可以设置默认值。在创建唱片时,“SomeId'将默认为 NULL
public class ExampleTable
{
public ExampleTable()
{
SomeId = null;
}
public Guid? SomeId { get; set; }
}