实体框架6+代码视图中的第一个多个模型

本文关键字:第一个 模型 框架 代码 视图 实体 | 更新日期: 2023-09-27 18:15:28

型号:

制造商Model.cs

public class Manufacturers
{
    [Key]
    public int ManufacturerID { get; set; }
    [Required]
    [StringLength(100)]
    public string Name { get; set; }
    public int AddressID { get; set; }
    public Address Address { get; set; }
    [EmailAddress]
    [StringLength(150)]
    public string EmailAddress { get; set; }
    [Phone]
    [StringLength(20)]
    public string PhoneNumber { get; set; }
    public ICollection<Brands> Brands { get; set; }
}

品牌Model.cs

public class Brands
{
    [Key]
    public int BrandID { get; set; }
    [Required]
    [StringLength(100)]
    public string BrandName { get; set; }
    [Required]
    public int ManufacturerID { get; set; }
    public Manufacturers Manufacturers { get; set; }
    public ICollection<Products> Products { get; set; }
}

因此,当尝试为品牌创建"创建"页面时,我希望有两个字段:品牌名称和制造商名称。品牌名称将是一个文本框/编辑器,用户可以在其中输入他们想要的内容。由于依赖关系,我希望制造商名称是一个jQuery UI自动完成下拉列表,这样我就知道依赖关系会得到满足。然而,我不确定我的@模型应该是品牌还是制造商。

这扩展到了我可能会处理的其他页面,这些页面可能需要多个模型。我有一个包含我创建的所有模型的上下文,但不确定我是否可以/应该将上下文发送到页面,或者只发送模型。举个例子,我想创建的另一个页面是创建产品页面,该页面将具有制造商名称jQuery UI自动完成下拉列表和品牌名称jQuery用户界面自动完成下拉菜单,因为产品与品牌的关系与品牌与制造商的关系相同。

刚开始代码优先开发,所以需要所有我能得到的帮助和提示。非常感谢。

实体框架6+代码视图中的第一个多个模型

这些类看起来像一个数据模型。您可能不想将它们用作页面的实际模型(有时称为视图模型(。您应该考虑专门为页面创建一个模型,该模型上的属性表示呈现该页面所需的数据。此模型不会存储在数据库中,它只是用于应用程序的模型。

在您的情况下,对于此页面,我将创建一个模型,该模型具有所键入品牌名称的字符串属性和所选制造商的整数属性。您可能还想考虑添加一个键值对列表属性,作为制造商选择的数据源,不过,如果您想了解更多信息,也可以在控制器的另一种操作方法上通过ajax获取这些数据。

控制器应该负责用数据模型中的信息创建一个填充视图模型,并且在保存时也会执行相反的操作。

这似乎更像是一个关于MVC的问题,而不是实体框架。