2016-06-27 5 views
1

Я искал в Интернете, как сопоставить enum в проекте ASP.NET MVC, используя Entity Framework 6 (Code First и Fluent Api), результаты моего поиск показал, что этот тип отображения не является тривальным, как в Java (Hibernate + JPA).Как отображать свойство Enum в Entity Framework 6 Code First и Fluent Api

Я нашел статью, которая дает представление о том, как решить проблему, но не знаю, есть ли другой способ.

Статья: http://eliot-jones.com/2015/03/entity-framework-enum

Они могли бы поделиться опытом по данному виду отображения?

Что было бы правильным или официальным способом карты Enum?

Я работаю с возможностью того, что поле является строкой в ​​базе данных, и по этой причине я хотел бы знать, можете ли вы работать с порядковым типом или именем перечисления.

Я жду возвращения и благодарю вас за внимание.

+0

Почему бы вам просто не отобразить его в поле int в вашем db? –

+0

Вам даже не нужно это делать, просто нарисуйте его как обычно и до тех пор, пока тип поля db будет таким же, как тип базового перечисления (байт, короткий, int и т. Д.), Он будет работать нормально. –

+0

Вам не нужно ничего делать. Ваша модель имеет свойство этого типа перечисления, просто нарисуйте его так же, как и любое другое свойство. Убедитесь, что вы указали тип перечисления, хотя, если он не является int, как при использовании байта, короткого, int или длинного. Затем база данных автоматически будет иметь тот же тип, что и перечисление (tinyint, smallint, int, bigint). – Igor

ответ

0

В Hibernate вы должны отображать все сущности самостоятельно, но Entity Framework имеет поведение по умолчанию для отображения объектов, которые вы регистрируете в dbset в dbcontext.

public DbSet<Entity> Entities { get; set; } 

Вы должны свободно использовать api, где поведение по умолчанию EF не соответствует вашей цели. Но в вашем вопросе (Enums in EF) поведение по умолчанию будет работать правильно, и вам не нужно ничего делать. Сохраняет enume как int в базе данных. Entity Framework Enum Support