2011-11-19 48 views
0

到目前为止我所看到的WCF数据服务在使用时与EF结合使用时非常容易设置。WCF数据服务和动态变化的数据集

这就是我刚刚开箱后的情况,但我还需要EF模型在运行时更改的功能。

我正在构建一个应用程序,应用程序用户将能够指定数据库结构,然后开始填充它...然后使用一些巧妙的基于规则的欺骗技术,使用MVC生成所需的相关UI组件。

因此,例如,用户将得到一个“创建新对象”按钮,这将让他们指定字段名称。

该部分完成后,用户提交该部分,并在db中生成一个新表。 从那里生成UI组件,允许在应用程序内管理该表。

当然,问题是无需重新编译后端数据服务即可将该新表插入到EF模型中。

这个概念是,它建立了数据库和管理其各个部分所需的页面(这里有一个更大的图片,但我不想通过试图解释这一切来混淆事项)。

我在想EF可能不是正确的工具,因为它需要一个强类型的实体集才能工作......在这种情况下可能无法实现。

我与通过这个服务动态物体的想法玩弄...(比如输入的东西的对象:动态)

+0

'我想EF可能不是正确的工具使用目前我也是这样 –

回答

1

我建议不仅是实体框架是为这个不正确的,但也是一个关系数据库。文档数据库或键值存储可能会比尝试按需创建表将其推入关系结构更合适。

+0

有问题的数据是最确定的关系数据......给这个上下文我很喜欢构建工作流对未知类型的对象进行操作的引擎...当用户定义流程/流程时,它们还定义它们在其上运行的对象。 – War

1

WCF数据服务可以在没有实体框架的情况下使用。使用“反射提供程序”或您必须实现的自定义提供程序(Reflection提供程序要求您具有实际的.NET类,而您不需要)。

基本上,您将实现DataService类和IServiceProvider接口,它将提供IDataServiceQueryProvider,IDataServiceMetadataProvider和IDataServiceUpdateProvider的实例。这可能涉及很多工作,所以请确保你确实想要这样做。

查看http://msdn.microsoft.com/en-us/library/ee960143.aspx了解更多信息。

+0

这看起来很复杂...我会通读它并回复你:) – War

+0

这是非常复杂的,但它可以完成。我自己做过,但对于现有的.NET类,动态模式将是一个真正的巨大挑战。但从你的无偿项目来看,你并不害怕这一点。 –

+0

EF DataContext是否实现所有这些接口? ...沉重! ...虽然可以......但我有兴趣了解您的解决方案如何工作? – War