EF“Model First”:在edmx和db中创建实体
这个问题是我在大约2.5年前已经问过的下一个问题的一部分:使用Model First进行实体框架(.NET)往返建模?
我想问一下,在此期间,以下是可能的(以及从哪个版本的EF向上):
我们目前正在使用EF 5.0和“Model First”方法(VS 2012)。 第一个问题之后,我们设法配置了两个T4模板来生成DbContext派生类和POCO,因此如果我们需要映射新的(或现有的)数据库表,我们可以通过右键单击到VS EF设计师>“从数据库更新模型...”一切运作良好(我们的数据库有很多表,我的EF模型没有映射所有这些表)。
现在我们还有一些尚未映射到实体的其他(POCO)类(在designer / edmx中),并且我们在数据库中没有任何表。 使用“模型优先”方法(我们迄今为止使用的方法),是否有可能同时生成数据库中的表格模式(我们需要生成的SQL)和设计器/ edmx(元数据)中的实体? (我知道“模型第一”这个名字可能会这样说,但也许这同样适用于下一节中“代码优先”的链接:“edmx based”应该更好?)
我知道“代码优先”(或更好:“基于代码”,http://blogs.msdn.com/b/adonet/archive/2014/10/21/ef7-what-does-code-first-only-really -mean.aspx)可以做这样的事情,但据我所知,映射只能在虚拟内存中暂时创建,而不是在edmx中(这是我们需要的)。
我的一个想法是先使用代码创建一个额外的迷你项目,生成数据库表,并从这些项目中更新我上面提到的项目中的edmx; 或者有可能以某种方式从代码生成的临时模型中写出一个edmx?
如果有人知道更优雅的解决方案,那将会很棒,
提前致谢。
Arthur Vickers的有用文章:
http://blog.oneunicorn.com/2012/02/26/dont-use-code-first-by-mistake/
http://blogs.msdn.com/b/adonet/archive/2011/03/07/when-is-code-first-not-code-first.aspx
以下SO线程也很好匹配,但也有点老(EF 4):
使用EF4迁移工具和模型优先方法
Entity Framework 4.1 Code First EDMX问题