Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/21.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
.net 实体框架是否适合替换多个数据库和动态SQL?_.net_Entity Framework - Fatal编程技术网

.net 实体框架是否适合替换多个数据库和动态SQL?

.net 实体框架是否适合替换多个数据库和动态SQL?,.net,entity-framework,.net,Entity Framework,我已经接管了一个遗留应用程序的维护工作,该应用程序管理的项目每个项目都有一个单独的数据库(就本问题而言是相同的),目前有超过1000个数据库。此外,这些数据库没有定义表关系,而是使用查询级别的联接来确定关系。当前使用动态SQL和ADO.net提取数据 我曾希望使用实体框架提供一个公共数据访问层,根据需要使用实体框架在数据库之间切换 然而,我现在认为,由于缺少表关系(甚至不清楚哪些是1对多、1对1等),EF可能比它的价值更麻烦,我将难以定义关联和导航属性,这将使提取数据的任务更加复杂 我的问题是,

我已经接管了一个遗留应用程序的维护工作,该应用程序管理的项目每个项目都有一个单独的数据库(就本问题而言是相同的),目前有超过1000个数据库。此外,这些数据库没有定义表关系,而是使用查询级别的联接来确定关系。当前使用动态SQL和ADO.net提取数据

我曾希望使用实体框架提供一个公共数据访问层,根据需要使用实体框架在数据库之间切换

然而,我现在认为,由于缺少表关系(甚至不清楚哪些是1对多、1对1等),EF可能比它的价值更麻烦,我将难以定义关联和导航属性,这将使提取数据的任务更加复杂


我的问题是,这听起来公平吗?或者实体框架在上述场景中可以吗?

“这些数据库没有定义表关系……EF可能比它的价值更麻烦”——使用数据库优先的场景(而不是代码优先),如果您希望关联和导航属性,则在生成.NET EF代码模型之前,EF确实要求数据库已经设置了数据库级关系。是的,我同意你关于EF不合适的看法。谢谢米奇,你认为代码优先的方法行得通吗?当然可以。然而,听起来手工重新创建所有类可能需要做很多工作,但至少这样您可以定义导航属性,从而使实际的应用程序代码更容易。请注意,它不会试图重新编写您的DB架构。感谢您的警告,我认为,按照您的建议,我将把它保留为ADO.net并保存EF以供此应用程序的最终替换。我建议查看Dapper。这是一种非常灵活的微型ORM。我成功地使用了它。