Отображение коллекции типов значений в Entity Framework - PullRequest
6 голосов
/ 03 марта 2011

Аналогичный вопрос: Отображение коллекции строк с помощью Entity Framework или Linq в SQL

У меня есть класс роли:

public class Role
{
    public int RoleID { get; set; }
    public virtual IList<string> Actions { get; set; }
}

У меня есть таблица сопоставления вБД "RoleActionMapping" со столбцами "RoleID" и "Действие".«RoleID» - это точка внешнего ключа для таблицы ролей, а «Action» - это varchar.Кажется, я не могу настроить отображение EF для заполнения класса RoleAle RoleActions.

Есть какие-нибудь идеи о том, как этого добиться?Спасибо!

1 Ответ

3 голосов
/ 03 марта 2011

EF не предлагает такое отображение.

Если вы хотите отобразить это, вы должны использовать:

public class Role
{
  public int RoleID { get; set;}
  public virtual IList<RoleAction> Actions { get; set; } // you should initialize collection
}

public class RoleAction
{
  public int ActionId { get; set; } // PK must be defined or entity is readonly
  public string Action { get; set; }
  public virtual Role { get; set; }
}

Вы можете дополнительно расширить класс Role на предоставленное не сопоставленное свойство, возвращая IEnumerable<string>, что внутренне выберет данные из свойства Actions.

Но как только вы последуете этому подходу, вы должны рассмотреть его как отношение M: N между Role и Action сущностью.

...