gpt4 book ai didi

c# - 在 ASP.Net MVC 4 应用程序中使用 POCO 对象添加注释的位置

转载 作者:行者123 更新时间:2023-12-02 21:48:27 28 4
gpt4 key购买 nike

我有一个普通的应用程序,我首先创建一个域层,在其中定义 POCO 对象,然后创建一个数据访问层,使用 EF Code First 将这些域对象持久保存到数据库。现在我需要这个项目的 UI,并且我已经创建了一个 MVC 4 项目,我需要创建一个强类型 View ,因此我需要一个模型来传递给 View 。

我的问题是我需要在模型文件夹中的哪里重新创建域对象,以便我可以向它们添加数据注释。例如,我有一个客户

public class Customer
{
public int CustomerId { get; set; }
public int RetailerId { get; set; }
public string CustomerName { get; set; }
public string CustomerEmail { get; set; }
public int PointsBalance { get; set; }
public decimal CashBalance { get; set; }

public ICollection<LoyaltyCard> LoyaltyCards { get; set; }
public virtual Retailer BusinessName { get; set; }
}

像这样的零售商对象:

public class Retailer
{
public int RetailerId { get; set; }
public string BusinessName { get; set; }
public string EmailsAddress { get; set; }
public int PhoneNumber { get; set; }
public ICollection<Location> BusinessLocations { get; set; }
public ICollection<Reward> Rewards { get; set; }
public Industry Industry { get; set; }
}

我是否应该向域层中当前的域对象添加注释 - 如果我这样做,则不会违反创建域对象 POCO 对象的目的。或者我应该在模型文件夹中重新创建域对象? - 那不是重复的吗?如果您有任何指示,请告诉我。

最佳答案

您不应该重新创建它们,而应该创建仅包含您需要的字段的模型,这样您就可以向其中添加注释。

你说这是重复,但实际上这是关注点分离。 UI 对 POCO 的了解越少越好(在理想的情况下,您的 UI 甚至不知道它们,它们会通过某些业务逻辑层/API 检索模型的实例。

例如,看看下面的 CustomerViewModel。注意到缺少一些属性了吗?嗯,我知道这是一个粗略的示例,但您实际上可能不想在添加新客户/显示它们时输入所有属性,因此这里有一个非常适合此目的的精简版本:

public class CustomerViewModel
{
[Required]
public int CustomerId { get; set; }

[Required]
public int RetailerId { get; set; }

[Required]
public string CustomerName { get; set; }

[Required]
public string CustomerEmail { get; set; }
}

关于c# - 在 ASP.Net MVC 4 应用程序中使用 POCO 对象添加注释的位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19126827/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com