Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 我可以直接使用实体框架生成的模型吗?_C#_Asp.net Mvc_Entity Framework - Fatal编程技术网

C# 我可以直接使用实体框架生成的模型吗?

C# 我可以直接使用实体框架生成的模型吗?,c#,asp.net-mvc,entity-framework,C#,Asp.net Mvc,Entity Framework,我对使用实体框架相当陌生。我正在从事一个WebMVC2项目(针对.NET3.5),并正在探索使用实体框架,因为我了解到在使用数据访问层时,这是推荐的方法 我的问题是,我已经创建了数据库,并使用VisualStudio创建了实体模型。现在,应该有一些自动生成的类供我使用。我已经阅读了一些教程,他们正在直接使用这些教程 但是我不确定。展望未来,我想在我的模型中需要一些额外的业务逻辑。那么,我应该早在现在就创建自己的模型类吗 提前谢谢你 这要视情况而定,发展中国家也是如此 如果您的项目非常简单,并且您

我对使用实体框架相当陌生。我正在从事一个WebMVC2项目(针对.NET3.5),并正在探索使用实体框架,因为我了解到在使用数据访问层时,这是推荐的方法

我的问题是,我已经创建了数据库,并使用VisualStudio创建了实体模型。现在,应该有一些自动生成的类供我使用。我已经阅读了一些教程,他们正在直接使用这些教程

但是我不确定。展望未来,我想在我的模型中需要一些额外的业务逻辑。那么,我应该早在现在就创建自己的模型类吗


提前谢谢你

这要视情况而定,发展中国家也是如此

如果您的项目非常简单,并且您知道它永远不会增加复杂性,那么不创建业务逻辑层也没关系

此外,直接访问控制器中自动生成的类将使实现更快

如果您没有这些确定性,那么我建议您创建一个业务逻辑层并使用自动生成的类,就像它们是将填充和持久化您的业务逻辑模型的数据库表一样


如果不创建业务逻辑层,则在维护和扩展应用程序时会受到影响。

您的数据模型代表了您的数据库表。模型不应该包含业务逻辑。您可以根据需要使用其他模型来组合dbmodel属性。。在单独的类中应用您的业务逻辑。 这些概念用于使项目更易于管理。。 但是您不应该在模型类中应用业务逻辑。。这不是一个好习惯

你可以从这里得到一些想法。。这可能有助于你理解。。

我认为您的意思是通过设计器生成模型。使用代码优先方法(先创建类)还是数据库优先方法并不重要。模型是表的表示形式,您可以通过Dbcontext访问模型,在Dbcontext中,您的模型表示为数据库集。您可以使用Dbcontext对基于实现的逻辑的模型/表执行任何类型的操作

业务逻辑不应该是模型的一部分,理想情况下应该是远离模型的两层。业务逻辑层应调用数据访问层(DAL),DAL应具有通过EF中的dbContext访问/操作数据的逻辑

请参阅存储库模式。()


这有助于业务逻辑独立于底层数据源(无论是sharepoint、sql server还是web服务)因为DAL层具有访问数据的实现。这种方法还避免了代码重复,有助于数据集中,并且不太容易出错。添加关注点分离也有助于更好地进行单元测试。

如果没有理由,请不要这样做。这就是为什么会有向导,为您创建模型。这些都是数据模型,但这并不意味着应用程序中不能有基于它们或它们的组合的其他模型。为什么模型会包含业务逻辑?