0

在我目前正在处理的应用程序中,有一部分我不知道数据库模式,因为它是由用户定义的,并且表是动态生成的。

正在完成的应用程序是 ASP.Net MVC 3 和 SQL Server 2008 R2。对于这样的应用程序,您建议将什么用于数据对象和数据访问层。

一种选择是简单地从 DAL 返回数据表并使用它们。但它们将是无类型的。选项是从结果集中动态创建对象。但它不会表现得很好。

还有其他方法吗?实体框架的代码优先可能会有所帮助吗?Expando 对象呢?

一件非常重要的事情是该应用程序的数据非常广泛,例如 GB 的数据。

4

1 回答 1

0

由用户动态创建表的应用程序不是实体框架的场景。实体框架需要已编译的类映射到表(+ 映射,如果不是按约定推断),您的代码必须使用这些类来利用它们。

在我看来,动态创建表的应用程序不是您可以期待强类型访问或出色性能的东西。这两个要求都要求您针对定义明确的类集(在设计时定义)编写代码,并优化这些类的代码和数据访问。在您的场景中这是不可能的 - 使用无类型数据集和动态创建的 SQL + ASP.NET 数据绑定控件,并希望它在大多数情况下都能正常工作。

编辑:

现在我看到你想使用 MVC3 = no data bound controls。您将不得不编写代码来检查您的无类型数据集并生成一些 UI 以允许查看、编辑和验证具有您不知道的结构的数据。这通常意味着您需要自己的元模型来描述新创建的表、约束、字段大小、可空列等,并使用这些信息来创建 UI,也许还可以根据这些信息准备无类型的数据集。

于 2011-06-21T07:01:11.203 回答