我在我的开发框上有一个名为ApplicationName_Development的数据库在SQL Server 2008 R2 Developer Edition上运行.
我没有问题地将.NET成员资格表添加到数据库中.当我试图让Code First工作时,我收到以下错误消息:
服务器遇到处理请求的错误.异常消息是"无法检查模型兼容性,因为数据库不包含模型元数据.请确保已将IncludeMetadataConvention添加到DbModelBuilder约定中.
经过一些谷歌搜索,我发现我必须删除数据库,让EF创建数据库.这没关系,但我丢失了所有的.NET会员表.我可以返回并再次添加成员资格表,但如果我的模型更改并且EF需要重新创建数据库,那么我必须再次添加成员资格表.
我该如何解决这个问题?
我目前正在开发一个使用EF Code First和POCO的项目.到目前为止,我有5个POCO取决于POCO"用户".
在POCO"用户"应该是指我的现有成员关系表"aspnet_Users"(我在的DbContext的OnModelCreating方法其映射到).
问题是,我想借此优势"重新创建数据库如果模型变更"功能为斯科特谷表示在:http://weblogs.asp.net/scottgu/archive/2010/07/16/code-first-development -with-entity-framework-4.aspx - 该功能基本上是在看到我的POCO中的任何更改后立即重新创建数据库.我想要它做的是重新创建数据库,但以某种方式不删除整个数据库,以便aspnet_Users仍然存在.然而,这似乎是不可能的,因为它要么创建一个全新的数据库,要么替换当前的数据库.
所以我的问题是:我注定要手动定义我的数据库表,还是我能以某种方式将我的POCO合并到我当前的数据库中,并且仍然可以使用该功能而无需全部擦除它?