我有一个单独的业务层项目(类库),它具有这样的实体类。
public class Company
{
public int Id{get;set}
public Name string {get;set;}
}
我已经将此dll引用到MVC项目,并将该公司类用作视图的模型类。 将Entity类用作模型是一种好习惯,还是有什么好的方法来实现呢?
答案 0 :(得分:0)
您的MVC项目必须包含与实体不同的模型。模型的目的是存储逻辑和所有验证。您的实体和模型类可能相同也可能不同。但是,所有验证和逻辑都必须包含在MVC应用程序的模型类中。这可以帮助您根据需要更改实体或模型。他们将保持松散耦合。
MSDN中提供了已使用的mvc应用程序的最佳实践
https://blogs.msdn.microsoft.com/aspnetue/2010/09/17/best-practices-for-asp-net-mvc/
答案 1 :(得分:0)
对于中型到大型.net MVC项目,在视图中使用Model实体通常是一个坏习惯。考虑为视图创建单独的模型。并使用Automapper将您的业务层模型转换为视图层模型。
以下是有关模型和视图模型之间差异的一些有用信息: https://cpratt.co/entities-are-not-models/
答案 2 :(得分:0)
如果您打算使用多轮胎。.请在下面找到我的评论。
基于“ Convention over Configuration”模式设计的ASP.NET MVC。因此,请勿尝试混淆概念。我不会伤害这个项目,但是会在维护过程中引起严重的头痛。
通过将实体移出Web项目并将其保留为单独的类库,这是一种安全的做法。 (“关注分离”-SOLID原则。)
在模型中,进行客户端验证,并与Entity一起从持久性存储(数据库)执行业务验证和数据处理
参考文献: