c# - 当数据库架构在运行时之前未知时,是否可以使用 EF 4.1 及更高版本的代码优先功能?

标签 c# entity-framework ef-code-first

在我能找到的任何稀疏示例中,这似乎都没有被明确列为功能,例如:

http://blogs.msdn.com/b/adonet/archive/2011/01/27/using-dbcontext-in-ef-feature-ctp5-part-1-introduction-and-model.aspx

http://www.codeproject.com/Articles/336187/code-first-practical-case

http://blogs.msdn.com/b/adonet/archive/2011/09/28/ef-4-2-code-first-walkthrough.aspx

但我认为 DbContext 文档至少暗示这是可能的: http://msdn.microsoft.com/en-us/library/system.data.entity.dbcontext(v=vs.103).aspx

DbContext is usually used with a derived type that contains DbSet properties for the root entities of the model. These sets are automatically initialized when the instance of the derived class is created.

我的目标是使用 EF 从 Silverlight 客户端通过 WCF 数据服务访问数据库,其中一些列在运行时是未知的。任何更好的想法将不胜感激

最佳答案

WCF 或 EF 都不是适合这种情况的技术。 WCF 及其自动生成的代理需要编译时定义的模型——您可以避免这种情况,但因此您将不会使用强类型数据协定,而是使用“通用数据”,并且您将在 XML 或 JSON 级别上使用它们。

对于 EF,更糟糕的是没有简单的解决方法来获得动态行为。您可以以动态方式更改数据库甚至映射(但不是首先使用代码 - 仅使用 EDMX),但最后您仍然需要代表映射数据的编译类。

您引用的文档部分与映射的动态创建无关,而仅与设计时定义的映射的动态初始化有关。

关于c# - 当数据库架构在运行时之前未知时,是否可以使用 EF 4.1 及更高版本的代码优先功能?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9473939/

相关文章:

c# - 使用查询字符串解析 AppSettings 值时出错

c# - 从调用者类调用方法并避免循环依赖

c# - 检索Windows设备的DPI

entity-framework - Entity Framework 2.0 是否有计划的发布日期?

asp.net-mvc - EF4.3 代码优先、MVC、在 POST 操作中附加后延迟加载

c# - 适用于 Visual Studio 2012/2013 的 MySQL

c# - 全面实现中继命令 - 它可以应用于所有情况吗?

c# - 首先创建代码,多对多,关联表中有附加字段

asp.net-mvc-3 - 无效的对象名称 dbo.TableName

c# - 多对多映射未创建正确的表