【问题标题】:ASP MVC Code first List<string> model propertyASP MVC 代码第一个 List<string> 模型属性
【发布时间】:2013-02-21 07:39:55
【问题描述】:

我很确定这个问题的答案将是它无法完成,但无论如何我都会询问以确保。

我正在尝试定义一个包含 List 属性的 ASP .Net MVC 模型,但 EF 在创建数据库架构时似乎忽略了它。

看这个问题,Entity Framework Code First List<string> Property Mapping,解决方案似乎是创建一个新类以在列表中使用。显然,这对于像字符串这样简单的东西来说似乎有点过头了,所以我想知道他们是否是另一种使用代码和实体框架来做到这一点的方法。

【问题讨论】:

    标签: asp.net-mvc entity-framework ef-code-first


    【解决方案1】:

    你需要告诉 EF 如何在数据库中表示这个

    字符串列表代表什么?您需要记住您正在定义如何将这些数据存储在数据库中。

    这些是您需要定义模型的原因,如@Ladislav Mrnka post 所示

    更新

    为了避免混淆,我会完全按照@Ladislav Mrnka 的建议:

    public class Container
    {
        public int Id { get; set; }
        public string Name { get; set; }   
    
        public virtual ICollection<User> Users
        {
            get;
            set;
        }
    }
    
    public class User
    {
        public int Id { get; set; }
        public string Text { get; set; }
    }
    

    【讨论】:

    • 字符串将表示来自另一个服务的用户 ID 列表或区域列表。
    • 大概这需要存储在您的数据库中?因此,它存在于您的模型中的原因。因此,您需要在模型中定义如何在数据库中表示它
    • 你会为每一个推荐一个单独的类(以及表)吗?使用单个“TextOptions”来包含不同的数据似乎很混乱,只是为了绕过 List
    • 当然,与 ladislav Mrnka 的相关帖子几乎相同的解决方案。这将允许 ef 知道如何将其映射到模式。它还使您能够在以后的这些用户 ID 之间建立适当的关系
    • 谢谢。 :) 清理了很多东西。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-08-07
    • 2023-01-05
    • 2021-01-29
    • 1970-01-01
    • 1970-01-01
    • 2015-08-09
    相关资源
    最近更新 更多