Таблица сервера sql:
SomeId PK varchar(50) not null
OtherId PK int not null
Как мне сначала отобразить это в коде EF 6?
public class MyTable
{
[Key]
public string SomeId { get; set; }
[Key]
public int OtherId { get; set; }
}
Я видел несколько примеров, когда вам нужно установить порядок для каждого столбца, это требуется?
Есть ли где-нибудь официальная документация по этому поводу?
c#
sql-server
entity-framework
entity-framework-6
loyalflow
источник
источник
SomeId
string
int
Ответы:
Вам обязательно нужно указать порядок столбцов, иначе как SQL Server должен знать, какой из них идет первым? Вот что вам нужно сделать в своем коде:
Вы также можете посмотреть на этот вопрос SO . Если вам нужна официальная документация, я бы порекомендовал заглянуть на официальный сайт EF . Надеюсь это поможет.
РЕДАКТИРОВАТЬ: Я только что нашел сообщение в блоге Джули Лерман со ссылками на все виды добра EF 6. Вы можете найти все , что вам нужно здесь .
источник
otherwise how is SQL Server supposed to know which one goes first?
- почему бы не таким же образом узнать порядок для всех остальных столбцов?Для сопоставления составного первичного ключа с использованием Entity framework мы можем использовать два подхода.
1) Путем переопределения метода OnModelCreating ()
Например: у меня есть класс модели с именем VehicleFeature, как показано ниже.
Код в моем DBContext будет выглядеть так:
2) По аннотациям данных.
Пожалуйста, перейдите по ссылкам ниже для получения дополнительной информации.
1) https://msdn.microsoft.com/en-us/library/jj591617(v=vs.113).aspx
2) Как добавить составной уникальный ключ с помощью EF 6 Fluent Api?
источник
Через конфигурацию вы можете сделать это:
затем в контексте config
источник
Я подумал, что добавлю к этому вопросу, так как это лучший результат поиска Google.
Как было отмечено в комментариях, в EF Core нет поддержки использования аннотаций (ключевой атрибут), и это должно выполняться свободно.
Поскольку я работал над большой миграцией с EF6 на EF Core, это было неприятно, поэтому я попытался взломать его, используя Reflection, чтобы найти атрибут Key, а затем применить его во время OnModelCreating
Я не тестировал это полностью во всех ситуациях, но в моих основных тестах он работает. Надеюсь, это кому-то поможет
источник