C# 如何在MVC3中处理动态数据模型

C# 如何在MVC3中处理动态数据模型,c#,asp.net,asp.net-mvc-3,entity-framework-4,datamodel,C#,Asp.net,Asp.net Mvc 3,Entity Framework 4,Datamodel,在我目前正在处理的应用程序中,有一部分我不知道db模式,因为它是由用户定义的,表是动态生成的 这个应用程序是ASP.NETMVC3和SQLServer2008R2。对于这样的应用程序,您建议对数据对象和数据访问层使用什么 一种选择是简单地从DAL返回数据表并使用它们。但它们将是非类型化的。 选项是从resultset动态创建对象。但它不会表现得很好 还有别的办法吗?实体框架的代码优先会有帮助吗?Expando对象呢 非常重要的一点是,应用程序的数据非常广泛,类似于GBs数据。用户动态创建表的应用

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

这个应用程序是ASP.NETMVC3和SQLServer2008R2。对于这样的应用程序,您建议对数据对象和数据访问层使用什么

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

还有别的办法吗?实体框架的代码优先会有帮助吗?Expando对象呢


非常重要的一点是,应用程序的数据非常广泛,类似于GBs数据。

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

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

编辑:


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

用户希望如何处理这些未知的数据结构?或者数据的逻辑结构是已知的,并且只有数据库模式对于不同的用户是不同的?