作者:一个醒不来的梦zyc | 来源:互联网 | 2022-12-09 17:37
我想创建一个带有主键阴影的表(不在模型中)。
public class Person
{
public string Name { get; set; }
}
public class PersonEntityTypeConfiguration : IEntityTypeConfiguration
{
public void Configure(EntityTypeBuilder builder)
{
builder.Property?
builder.HasKey("Id")????
}
}
注意:实际情况是不同的类和值对象(DDD)。
1> Gert Arnold..:
有两种方法可以完成此任务。一种是定义属性,然后将其配置为键(顺序很重要)
builder.Property("ID")
.HasColumnType("int")
.ValueGeneratedOnAdd();
builder.HasKey("ID");
您可能想要ValueGeneratedOnAdd
在这里,因为在幕后做所有事情都差不多是阴影属性。
我从不喜欢其中语句顺序是隐藏需求的代码。这可能会导致意外的错误。我希望使用单语句选项:
builder.Property("ID")
.HasColumnType("int")
.ValueGeneratedOnAdd()
.HasAnnotation("Key", 0);
输入0
in 的值HasAnnotation
是因为它是必需的。它与密钥生成无关。
我还不确定在键中使用阴影属性是否是个好主意。我无法监督实际使用它们时可能出现的问题。这确实是一个非常好的主意。