Entity framework 通过nuget在引用dll中进行EF代码迁移

Entity framework 通过nuget在引用dll中进行EF代码迁移,entity-framework,code-migration,Entity Framework,Code Migration,我们有一种情况。我们公司有一个基于.net的框架,该框架由使用该框架开发的产品使用。现在这个框架首先使用EF代码。我们希望通过生成的迁移定义来实现EF代码迁移,因为我们的实体位于某个框架项目中。所以我实施了它。但情况是,我们将这个框架作为Nuget包(内部)分发给其他产品 现在的情况是,ProductA正在使用包含xyz.dll的包,该包中启用了迁移。现在,“ProductA”的开发人员希望首先使用该xyz.dll迁移来升级由Framework EF代码创建的数据库,但该dll仅作为引用dll添

我们有一种情况。我们公司有一个基于.net的框架,该框架由使用该框架开发的产品使用。现在这个框架首先使用EF代码。我们希望通过生成的迁移定义来实现EF代码迁移,因为我们的实体位于某个框架项目中。所以我实施了它。但情况是,我们将这个框架作为Nuget包(内部)分发给其他产品

现在的情况是,ProductA正在使用包含xyz.dll的包,该包中启用了迁移。现在,“ProductA”的开发人员希望首先使用该xyz.dll迁移来升级由Framework EF代码创建的数据库,但该dll仅作为引用dll添加。所以,在包管理器控制台中运行像更新数据库这样的命令是不起作用的,因为项目不在当前解决方案及其引用dll中


如何解决这个问题?

这实际上很容易解决,您添加nuget包的项目也需要参考EF

实际上,您可以在nuget包中使用依赖项强制执行此操作,例如:

    <dependencies>
        <dependency id="EntityFramework" version="4.2.0.0" />
    </dependencies>

在您的nuspec中(显然使用您正在使用的版本更新版本)

见:


有关依赖性语法如何工作的更多详细信息

我知道依赖性,但我认为您不理解我描述的问题,当您打开package manager控制台并运行update database时,如果您不提供带有参数的项目名称,则将采用package manager控制台中选择的默认项目,因此其抛出错误get project Failed更新数据库命令包含在随EF nuget包导入的powershell中。这意味着,除非您的解决方案中包含此功能,否则它将无法在package manager控制台中使用。@user393014您正在安装哪个版本的EF?