在我能找到的任何稀疏示例中,这似乎都没有被明确列为功能,例如:
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/