Как я могу устранить ошибку «Не найден лучший тип для неявно типизированного массива» при создании уникального ограничения для свойств разных типов?

ВОПРОС. Как с помощью 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).

Это сообщение SO объясняет причину ошибка, но не объясняет, как я могу решить проблему, отмеченную моим вопросом.

Я пытался использовать массив объектов, но это не сработало:

new object[] {entity.COL1, entity.COL2}

person derekbaker783    schedule 04.07.2021    source источник


Ответы (1)


Я смог решить эту проблему, используя анонимный объект. Например:

builder.HasAlternateKey(e => new { e.SomeInt, e.SomeString })
person derekbaker783    schedule 04.07.2021