在实体框架中映射值类型集合

发布于 2024-10-20 01:40:32 字数 499 浏览 6 评论 0原文

类似的问题:使用实体框架映射字符串集合或 Linq to SQL

我有一个角色类:

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

我在数据库中有一个映射表“RoleActionMapping”,其中包含“RoleID”和“Action”列。 “RoleID”是指向 Role 表的外键,“Action”是 varchar。我似乎无法设置 EF 映射来使用 RoleActions 填充 Role 类。

关于如何实现这一目标有什么想法吗?谢谢!

Similar question: Mapping collection of strings with Entity Framework or Linq to SQL

I have a role class:

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

I have a mapping table in the db, "RoleActionMapping" with the columns, "RoleID" and "Action". "RoleID" is a foreign key point to the Role table, and "Action" is a varchar. I cannot seem to setup my EF mapping to populate the Role class with the RoleActions.

Any ideas on how to achieve this? Thanks!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

带上头具痛哭 2024-10-27 01:40:32

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 的未映射属性,该属性将从 Actions 内部选择数据 属性。

但是,一旦您遵循这种方法,您应该考虑将其建模为 RoleAction 实体之间的 M:N 关系。

EF doesn't offer such mapping.

If you want to map it you must use:

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; }
}

You can further extend Role class to provied not mapped property returning IEnumerable<string> which will internally select data from Actions property.

But once you follow this approach you should consider model it as M:N relation between Role and Action entity.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文