gro*_*kky 10 entity-framework ef-migrations entity-framework-core ef-fluent-api
我需要一个复合唯一约束来实现我的实体的Name属性,它是唯一的Category(对于它有一个FK).
所以像这样:
entityTypeBuilder
.HasIndex(i => new { i.Name, i.Category.Id })
.IsUnique();
Run Code Online (Sandbox Code Playgroud)
但是由于Category.Id导航属性,我在生成迁移时失败了.
我知道我可以将值硬编码为字符串,但我不想丢失静态类型.
我有什么选择?
CategoryId在相关实体上为Category of添加外键,并在索引构建器中使用该外键而不是导航属性.
只要知道了shadow属性名称,就可以使用(至少在EF Core 1.1.0中)基于字符串的HasIndex方法重载
public virtual IndexBuilder HasIndex(params string[] propertyNames)
Run Code Online (Sandbox Code Playgroud)
例如
entityTypeBuilder
.HasIndex("Name", "CategoryId")
.IsUnique();
Run Code Online (Sandbox Code Playgroud)
同样的HasAlternateKey:
entityTypeBuilder
.HasAlternateKey("Name", "CategoryId");
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4773 次 |
| 最近记录: |