使用实体类作为模型

时间:2019-01-20 11:17:36

标签: asp.net-mvc

我有一个单独的业务层项目(类库),它具有这样的实体类。

public class Company
{
public int Id{get;set}
public Name string {get;set;}
}

我已经将此dll引用到MVC项目,并将该公司类用作视图的模型类。 将Entity类用作模型是一种好习惯,还是有什么好的方法来实现呢?

3 个答案:

答案 0 :(得分:0)

您的MVC项目必须包含与实体不同的模型。模型的目的是存储逻辑和所有验证。您的实体和模型类可能相同也可能不同。但是,所有验证和逻辑都必须包含在MVC应用程序的模型类中。这可以帮助您根据需要更改实体或模型。他们将保持松散耦合。

MSDN中提供了已使用的mvc应用程序的最佳实践

https://blogs.msdn.microsoft.com/aspnetue/2010/09/17/best-practices-for-asp-net-mvc/

https://docs.microsoft.com/en-us/aspnet/mvc/overview/older-versions-1/overview/understanding-models-views-and-controllers-cs#understanding-models

答案 1 :(得分:0)

对于中型到大型.net MVC项目,在视图中使用Model实体通常是一个坏习惯。考虑为视图创建单独的模型。并使用Automapper将您的业务层模型转换为视图层模型。

以下是有关模型和视图模型之间差异的一些有用信息: https://cpratt.co/entities-are-not-models/

答案 2 :(得分:0)

如果您打算使用多轮胎。.请在下面找到我的评论。

  1. 基于“ Convention over Configuration”模式设计的ASP.NET MVC。因此,请勿尝试混淆概念。我不会伤害这个项目,但是会在维护过程中引起严重的头痛。

  2. 通过将实体移出Web项目并将其保留为单独的类库,这是一种安全的做法。 (“关注分离”-SOLID原则。)

  3. 在模型中,进行客户端验证,并与Entity一起从持久性存储(数据库)执行业务验证和数据处理

参考文献: