具有大量表的实体框架

时间:2013-01-15 10:59:55

标签: entity-framework

我们的数据库有大约500个我们想在EF模型中使用的表。其中我很乐意从50岁或更少开始,只是为了让我的脚在普通的ADO.net工作多年后才能湿透。

问题是,我们的SQL服务器包含数千个其他表,这些表存在于我们的数据库中,这些表已经创建了多年,并且许多表是动态生成的。信不信由你:

select count(*) from INFORMATION_SCHEMA.TABLES
73261

所以那是很多桌子。我发现几乎我尝试设计,构建或模板EF模型或实体的每个工具都会挂起或不返回表列表。甚至VS2012中的SQL Server对象资源管理器也不会列出表格,而是显示表格文件夹,图标上有一点“x”。所以我甚至无法选择表的子集。

使用EF有哪些选择?是否有一个模板,我可以明确定义我想要使用实体的表?即使有50个表,我也不想在空EDMX中对每个表进行编码。

2 个答案:

答案 0 :(得分:1)

使用数据库/代码优先方法并避免将Visual Studio连接到数据库(即不创建edmx或与服务器资源管理器连接)将允许您轻松地执行此操作。它没有给你任何Model First的优势,但我认为听起来你的项目最好用Database / Code First方法服务:

  1. 您有一个现有的模型,并且不希望将更改从EDMX推送到数据库
  2. 您希望在数据库的子集上实现此功能
  3. 这个链接有一个很好的总结(Code-first vs Model/Database-first),需要注意的是,在你的情况下,数据库/代码优先方法没有你将更改从代码推送到数据库,因此代码中的最后两个项目符号首先适用更少,你的是数据库/代码优先混合。

    使用70k表我认为任何GUI都会很棘手。当我说数据库/代码优先时,我试图表明您没有使用代码来创建/定义和更新您的数据库。有人可能能够更简洁/准确地回答这个问题吗?

答案 1 :(得分:0)

我现在这是一个老问题。但是对于那些在这里进行谷歌搜索的人。我发现唯一可以在数千张表上使用的工具是The Sharp Factory。

这是一个ORM。使用起来非常简单。因此,如果您正在寻找一个可以处理大量表并且不需要编写“ POCOS”或“ Mappings”或SQL的ORM,那么这就是该工具。

您可以在这里找到它:The Sharp Factory