是否可以同时使用Entity Framework和Database项目?

问题描述 投票:0回答:2

[在昨天的会议上,我了解了将数据库置于源代码管理中的重要性。他们向我们展示了如何创建一个新的Database项目和导入数据库。

我想知道的是,我将如何更改在Entity Framework上运行的现有项目以利用数据库项目的功能?架构更新始终通过使用实体框架迁移来完成。我知道数据库项目将能够为我部署数据库更新并将这些更新脚本保存到源代码控制中,但是我想保留实体框架来查询我的数据(如果这样做有任何意义)。

是否可以(或什至:建议)使用Entity Framework访问数据库,但使用Visual Studio中的Database项目管理数据库?您如何处理?

我已经尝试搜索类似的问题,并使用Google查找是否有人遇到相同的问题,但到目前为止还没有发现问题。

我还应该指出,我正在考虑在还具有存储过程的数据库中使用此方法。这些完全不受实体框架控制,因此尚未处于源代码控制中。

谢谢您的时间。

sql-server visual-studio entity-framework
2个回答
0
投票

我开发了一个像这样的应用程序,它有2个项目:应用程序本身和数据库的SSDT项目。通过更改脚本部署了数据库更改,并且在应用程序中禁用了EF迁移。

一切正常,尽管确实带来一些开销。例如,将主要的数据库更新/重构引入EF层有点麻烦。由于某种原因,我无法将数据库更改直接反向工程到应用程序中,因此我不得不半手工完成:创建新项目,为整个数据库生成EF上下文,然后将新的/更改的文件复制到主应用程序中。

(然后,差不多在5年前。幸运的是,从那时起,EF脚手架得到了改善。)


0
投票

我想知道的是如何更改现有项目在Entity Framework上运行以利用数据库项目的功能?

答案:我建议您从Plural Sight看这门课程:https://www.pluralsight.com/courses/code-first-entity-framework-legacy-databases

是否有可能(甚至:建议)使用实体框架来访问数据库,但使用数据库项目来管理数据库在Visual Studio中?您如何处理?

回答:是的,有可能并且建议。您的数据项目成为有关数据库结构的事实来源。这非常强大,可以将对数据库的所有更改和状态的控制权集中在一处(Visual Studio)。第一个答案的课程将教您如何使用。

我还应该声明我正在考虑在数据库中使用在其中也有存储过程。这些不受控制实体框架完全没有,因此还不在源代码控制中。

答案:使用存储过程没有任何问题。 Plural Sight课程的工具将在您的源代码控制中创建该过程,而逆向工程将创建一个类/方法以方便使用该过程。

© www.soinside.com 2019 - 2024. All rights reserved.