问题描述
问题:使用 EF Core (v5),我如何解决编译器错误“未找到隐式类型数组的最佳类型”,从而允许我在其上创建唯一的数据库约束多个不同类型的属性?
我正在使用这样的代码:
modelBuilder.Entity<Entity>().HasAlternateKey(entity => new [] {entity.COL1,entity.COL2}).HasName("UniqueCOL1_COL2");
// example sourced from: https://docs.microsoft.com/en-us/answers/questions/187856/code-first-unique-constraint-on-multiple-columns.html#answer-190078
就我而言,我看到编译器错误 No best type found for implicitly-typed array
,因为 COL1
和 COL2
的类型不同(在本例中为 string 和 int)。
This SO post 解释了错误的原因,但没有解释我如何解决我的问题突出显示的问题。
我尝试使用一组对象,但没有用:
new object[] {entity.COL1,entity.COL2}
解决方法
我能够使用匿名对象解决这个问题。例如:
builder.HasAlternateKey(e => new { e.SomeInt,e.SomeString })