是否可以将映射对象作为标识列,并生成值 typeof int ?我尝试过这样,但这没有帮助。我有错误
标识值生成不能用于实体类型“Article”上的属性“Id”,因为属性类型为“ArticleId”。标识值生成只能与有符号整数属性一起使用。
public class ArticleId
{
public int Value { get; private set; }
public ArticleId(int value)
{
Value = value;
}
}
public class Article
{
public ArticleId Id { get; set; }
public string Name { get; set; }
}
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
var converter = new ValueConverter<ArticleId, int>(
v => v.Value,
v => new ArticleId(v)
);
modelBuilder
.Entity<Article>()
.Property(p => p.Id)
.HasConversion(converter)
.ValueGeneratedOnAdd()
.UseIdentityColumn();
base.OnModelCreating(modelBuilder);
}
Run Code Online (Sandbox Code Playgroud)