Сначала используйте перечисления с кодом Entity Framework 4.1 - PullRequest
0 голосов
/ 03 августа 2011

Сначала я использую Entity Framework 4.1.

У меня есть GrantApplication класс:

public class GrantApplication
{
   // Just some of the properties are listed
   public int Id { get; set; }
   public GrantApplicationState GrantApplicationState { get; set; }
}

GrantApplicationState - это перечисление, которое выглядит следующим образом:

public enum GrantApplicationState
{
   Applying = 1,
   Submitted = 2,
   cknowledged = 3
}

Непосредственно перед тем, как я добавлю базу данных заявки на грант, я установил состояние заявки на грант:

public void Insert(GrantApplication grantApplication)
{
   // Set the current state to applying
   grantApplication.GrantApplicationState = GrantApplicationState.Applying;

   // Insert the new grant application
   grantApplicationRepository.Insert(grantApplication);
}

В моей базе данных есть таблица GrantApplication с GrantApplicationStateId, которая ссылаетсяGrantApplicationState таблица.

Как заставить EF добавить идентификатор состояния из GrantApplication.GrantApplicationState в столбец GrantApplicationStateId?Это возможно?И когда я получу объект GrantApplication, его также нужно будет установить.Это способ сделать это, или мне нужно создать другое свойство в моем классе GrantApplication с именем GrantApplicationStateId?

Ответы [ 2 ]

3 голосов
/ 03 августа 2011

Вы должны создать другое свойство:

public class GrantApplication
{

   public int Id { get; set; }
   ...

   public int GrantApplicationStateId { get; set; }

   [NotMapped] // Perhaps not need
   public GrantApplicationState GrantApplicationState 
   { 
       get { return (GrantApplicationState)GrantApplicationStateId; }
       set { GrantApplicationStateId = (int)value; }
   }
}

EFv4.1 вообще не поддерживает перечисления - вы не можете отобразить их. Это изменится в EFv4.2.

1 голос
/ 14 марта 2012

Тем не менее EF не поддерживает Enums .. это будет на EF 5.0 .. проверьте мою попытку здесь http://the - semicolon.blogspot.com/p/handling-enum-in-code-first-entity.html

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...