如何使用现有数据库迁移?

时间:2012-03-01 12:10:37

标签: entity-framework migration ef-code-first

今天发布了EF4.3.1。 http://blogs.msdn.com/b/adonet/archive/2012/02/29/ef4-3-1-and-ef5-beta-1-available-on-nuget.aspx

关注博客:http://thedatafarm.com/blog/data-access/using-ef-migrations-with-an-existing-database/。我首先运行:add-migration initial但是抛出异常,如下所示,没有创建文件夹迁移:

PM> add-migration initial System.Reflection.TargetInvocationException:调用的目标发生了异常.---> System.ArgumentException:参数不正确。(异常来自HRESULT:0x80070057(E_INVALIDARG))    ---内部异常堆栈跟踪的结尾---    在System.RuntimeType.InvokeDispMethod(String name,BindingFlags invokeAttr,Object target,Object [] args,Boolean [] byrefModifiers,Int32 culture,String [] namedParameters)    在System.RuntimeType.InvokeMember(String name,BindingFlags bindingFlags,Binder binder,Object target,Object [] providedArgs,ParameterModifier [] modifiers,CultureInfo culture,String [] namedParams)    在System.Management.Automation.ComMethod.InvokeMethod(PSMethod方法,Object []参数) 调用的目标发生了异常。

因此,我首先运行Enable-migrations。创建了Configuration.cs的文件夹迁移。 我在没有dbo._migrationhistory表的系统表下检查了数据库。 然后我再次运行add-migration initial。抛出同样的例外。

项目中的域模型和位于DAL层中的另一个项目中的datacontext。

在我现有的数据库安全性中有几个表,如角色,用户等。 但没有迁移历史表。

我的datacontext中只有Iset Navigators。没有匹配的数据库表。 我的问题是如何获取迁移历史表并设置迁移?

1 个答案:

答案 0 :(得分:0)

我终于发现,如果将项目移出解决方案文件夹。它会工作正常。也许这是一个错误。