Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/entity-framework/4.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/macos/10.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
Entity framework 实体框架能生成DAL代码吗?_Entity Framework_Ef Database First - Fatal编程技术网

Entity framework 实体框架能生成DAL代码吗?

Entity framework 实体框架能生成DAL代码吗?,entity-framework,ef-database-first,Entity Framework,Ef Database First,我知道实体框架有一种数据库优先的方法。现在的问题是,它是否能为我生成DAL(数据访问层)代码(而不是模型)。我不确定“DAL代码”的具体含义,因为这是一个相当模糊的术语。我认为您的实体类型是DAL的一部分。 当您使用模型优先或数据库优先的方法时,实体框架工具可以从您的模型自动生成上下文类,该类将继承自ObjectContext。通过在线查找一个已经从.edmx生成的上下文类,并根据您的喜好进行修改,可以轻松地自定义生成的上下文类 代码优先开发使用DbContext,这通常不是自动生成的。请参阅S

我知道实体框架有一种数据库优先的方法。现在的问题是,它是否能为我生成DAL(数据访问层)代码(而不是模型)。

我不确定“DAL代码”的具体含义,因为这是一个相当模糊的术语。我认为您的实体类型是DAL的一部分。 当您使用模型优先或数据库优先的方法时,实体框架工具可以从您的模型自动生成上下文类,该类将继承自
ObjectContext
。通过在线查找一个已经从.edmx生成的上下文类,并根据您的喜好进行修改,可以轻松地自定义生成的上下文类


代码优先开发使用DbContext,这通常不是自动生成的。请参阅Scott Gu的博客了解更多详细信息

我不确定你所说的“DAL代码”是什么意思,因为这是一个相当模糊的术语。我认为您的实体类型是DAL的一部分。 当您使用模型优先或数据库优先的方法时,实体框架工具可以从您的模型自动生成上下文类,该类将继承自
ObjectContext
。通过在线查找一个已经从.edmx生成的上下文类,并根据您的喜好进行修改,可以轻松地自定义生成的上下文类


代码优先开发使用DbContext,这通常不是自动生成的。请参阅Scott Gu的博客了解更多详细信息

使用对象关系映射器(ORM)时,通常没有传统意义上的CRUD代码。相反,它将这些操作抽象为更面向对象的操作

例如,您不“插入”,而是将模型类添加到表中,然后保存更改。ORM自动生成使对象模型与数据模型匹配所需的SQL


因此,我的观点是,您的问题显示出对ORM的工作方式以及它们与数据模型的关系缺乏基本的理解。您可能应该做一些阅读。

当使用对象关系映射器(ORM)时,您通常没有传统意义上的CRUD代码。相反,它将这些操作抽象为更面向对象的操作

例如,您不“插入”,而是将模型类添加到表中,然后保存更改。ORM自动生成使对象模型与数据模型匹配所需的SQL


因此,我的观点是,您的问题显示出对ORM的工作方式以及它们与数据模型的关系缺乏基本的理解。您可能应该读一读。

您能详细说明一下“生成DAL代码”是什么意思吗。数据库优先的方法也是一种选择。您还可以使用前面提到的DbContext,让模型优先和代码优先。我的意思是,这些类具有数据库表的save-update-delete方法,它为您生成了一个从ObjectContext继承的类,并且您将在其中包含所有操作数据的方法。您能详细说明一下您的意思吗生成DAL代码。数据库优先的方法也是一种选择。通过使用前面提到的DbContext,您还可以使用model first和code first。我指的是具有数据库表的save-update-delete方法的类,它为您生成一个从ObjectContext继承的类,您将在其中包含所有操作数据的方法。DAL代码指的是数据访问层代码。假设我已经设计了我的数据库,现在我想把它添加到我的项目中。也许我会先使用EF数据库的方法。现在的问题是,EF是否可以为这些数据库表生成包含save-update-delete方法的类如果使用模型优先或数据库优先的方法,它将生成
ObjectContext
和相关的实体类型类。实体对象不包含save/update/delete方法,因为上下文管理实体对象及其关系,还包含
SaveChanges
<代码>刷新;和
DeleteObject
,您将清楚了解每种方法之间的差异。谢谢您提供的信息。但在模型优先的方法中,我必须再次设计整个数据库。这对于一个小项目可能是可行的,但是考虑到我的数据库是巨大的(有50多个表),我认为在这种情况下使用数据库第一方法是最好的想法(因为我已经设计了我的数据库)。现在,数据库优先的方法会和模型优先的方法做同样的事情吗?是的,它会。事实上,我一开始是指数据库,但混淆了两者。从@DSW的链接来看,模型一开始也是如此。(我首先将数据库编辑到我的答案和评论中。)DAL代码指的是数据访问层代码。假设我已经设计了我的数据库,现在我想把它添加到我的项目中。也许我会先使用EF数据库的方法。现在的问题是,EF是否可以为这些数据库表生成包含save-update-delete方法的类如果使用模型优先或数据库优先的方法,它将生成
ObjectContext
和相关的实体类型类。实体对象不包含save/update/delete方法,因为上下文管理实体对象及其关系,还包含
SaveChanges
<代码>刷新;和
DeleteObject
,您将清楚了解每种方法之间的差异。谢谢您提供的信息。但在模型优先的方法中,我必须再次设计整个数据库。这对于一个小项目可能是可行的,但是考虑到我的数据库是巨大的(有50多个表),我认为在这种情况下使用数据库第一方法是最好的想法(因为我已经设计了我的数据库)。现在,数据库优先的方法会和模型优先的方法做同样的事情吗?是的,它会。事实上,我指的是数据库