【问题标题】:How to validate Business Entity in Razor view instead of Data Entity如何在 Razor 视图中验证业务实体而不是数据实体
【发布时间】:2016-06-22 06:53:16
【问题描述】:

我正在开发一个拆分为 4 层的 ASP.NET 应用程序。

  1. 业务层
  2. 数据访问层
  3. WCF 服务客户端
  4. ASP.NET MVC5 应用程序

我正在使用 AutoMapper 从域类映射到业务类以及其他方式。我正在使用数据注释:

[StringLength(250)]
[Required(ErrorMessage = "Required Title")]
[Display(Name = "Function Title")]

在视图 ASP.NET Razor 页面中翻译,即通过传递强类型创建记录并针对它进行验证。我的问题是如何在传递业务类以将其视为强类型并且不希望数据依赖于业务层或 ASP.Net MVC 应用程序的情况下实现这一点?

DAL 实体

[Table("Navigation_Functions")]
public class Navigation_FunctionsEntity
{
    public Navigation_FunctionsEntity()
    {

    }
    [Key]
    public int Function_ID { get; set; }

    [StringLength(250)]
    [Required(ErrorMessage = "Required Title")]
    [Display(Name = "Function Title")]
    public string FunctionName { get; set; }

    [Required(ErrorMessage = "Required Hierarchy Level")]
    [Display(Name = "Hierarchy Level")]
    public int Hierarchy_Level { get; set; }

    public ICollection<Navigation_FunctionHierarchy> Navigation_FunctionHierarchy { get; set; }
    public ICollection<Navigation_FunctionInAction> Navigation_FunctionInAction { get; set; }
    public ICollection<Navigation_FunctionInController> Navigation_FunctionInController { get; set; }

    public ICollection<Navigation_FunctionController> Navigation_FunctionController { get; set; }
 }

商业实体

public class Navigation_Functions
{

    public int Function_ID { get; set; }

    public string FunctionName { get; set; }

    public int Hierarchy_Level { get; set; }

    public ICollection<Navigation_FunctionHierarchy> Navigation_FunctionHierarchy { get; set; }
    public ICollection<Navigation_FunctionInAction> Navigation_FunctionInAction { get; set; }
    public ICollection<Navigation_FunctionInController> Navigation_FunctionInController { get; set; }

    public ICollection<Navigation_FunctionController> Navigation_FunctionController { get; set; }
}

【问题讨论】:

    标签: c# asp.net-mvc entity-framework automapper n-tier-architecture


    【解决方案1】:

    我的建议是不要将您的代码组织成这样的层。这是很多箍,但没有真正的优势。事实上,随着时间的推移,我发现像这样的分层架构实际上会阻碍代码库的重构和演变。图层是为了蛋糕,而不是软件。

    https://vimeo.com/131633177

    我也质疑您图片中 WCF 的价值,除了增加延迟并使您的请求变慢之外,我不知道它在这里为解决方案添加了什么。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-04-30
      • 2017-10-10
      • 2011-12-22
      • 2012-03-30
      • 2011-05-02
      • 1970-01-01
      • 2011-01-22
      • 1970-01-01
      相关资源
      最近更新 更多