2016-01-12 114 views
0

它看起来像命令“更新数据库”使用默认项目的目录作为AppDomain,而不是启动项目的。LocalDb的代码优先迁移和DataDirectory

我有一个单独的类库项目,其中包含与数据库访问相关的所有内容,包括模型和迁移,我们将其称为Project.Data。这个项目的一个单元测试需要我在LocalDb上运行它。所以我在单元测试的app.config中创建了一个连接字符串。

Data Source=(LocalDb)\MSSQLLocalDB;AttachDbFilename=|DataDirectory|\MyDb.mdf;Initial Catalog=MyDb;Integrated Security=True 

但是当我运行命令“Update-Database”时DataDirectory的值为空。而使用AppDomain的工作目录在这里有点不可靠。

当模型和与迁移相关的代码位于单独的类库中时,如何运行“更新数据库”时如何使用Unit Test的工作目录?

回答

0

我认为在执行update-database命令时,您不得不使用ProjectNameStartUpProjectName参数。


在这里看到更多的细节:update-database command reference

Update-Database [-SourceMigration <String>] [-TargetMigration <String>] [-Script] [-Force] 
    [-ProjectName <String>] [-StartUpProjectName <String>] [-ConfigurationTypeName <String>] 
    -ConnectionString <String> -ConnectionProviderName <String> 
    [-AppDomainBaseDirectory <String>] [<CommonParameters>]