3

目前我正在调整一个与 Entity Framework 一起工作的系统以连接到 SQL Server 2008 R2 数据库。

对于新部分,关键用户需要添加、更改和删除普通用户可以使用的实体。在我创建一个保存具有名称和属性的对象的系统之前,我想看看是否可以使用关键用户提供的实体(通过简化的实体设计器)动态创建数据库。

我已经搜索了一点,但在互联网上但没有找到类似的东西。也许这里有人知道一些东西可以把我推向正确的方向?

4

1 回答 1

1

听起来你最好动态地定义表、列、索引和外键。如果您要使用带有实体和属性的“数据库的数据库”模式,您将无法有效地索引数据库。查询变得异常缓慢和讨厌。

您可以使用 SQL Server 管理对象 (SMO) 查询和更改数据库架构。我已经多次使用它们。他们工作并且很好地合作。

我不相信实体框架在这里带来了很多好处。EF 非常适合在静态模式上表达查询和 DML。如果您要使用动态模式,您将失去大部分好处。当然,一些好处仍然存在,例如实体密钥管理和能够使用 Entity SQL 而不是 T-SQL。不利的一面是,您必须在运行时创建所有 EF 元数据(可能生成 EDMX 文件或动态程序集)。

我认为这不值得。我强烈考虑在运行时构建数据库模式并使用动态构建的 T-SQL 对其执行查询。这样做比使用 EF 对系统进行操作要容易得多。

DataTables从这个意义上说,你又回到了GridViews5 年前被认为是好的风格。这可能还不算太糟糕。

于 2012-11-28T17:07:02.537 回答