LocalDb的代码优先迁移和DataDirectory
本文关键字:迁移 DataDirectory 代码 LocalDb | 更新日期: 2023-09-27 18:29:59
看起来"更新数据库"命令使用默认项目的目录作为AppDomain,而不是启动项目的目录。
我有一个单独的类库项目,它包含了与数据库访问相关的所有内容,包括模型和迁移,我们称之为project.Data。该项目的一个单元测试要求我在LocalDb上运行它。因此,我在单元测试的app.config.中创建了一个连接字符串
Data Source=(LocalDb)'MSSQLLocalDB;AttachDbFilename=|DataDirectory|'MyDb.mdf;Initial Catalog=MyDb;Integrated Security=True
但是当我运行命令"更新数据库"时,DataDirectory的值为null。在这里,使用AppDomain的工作目录有点不可靠。
当模型和迁移相关的代码在一个单独的类库中时,当我运行"更新数据库"时,我如何使用单元测试的工作目录?
我认为在执行更新数据库命令时必须使用ProjectName
或StartUpProjectName
参数。
请参阅此处了解更多详细信息:更新数据库命令参考
Update-Database [-SourceMigration <String>] [-TargetMigration <String>] [-Script] [-Force]
[-ProjectName <String>] [-StartUpProjectName <String>] [-ConfigurationTypeName <String>]
-ConnectionString <String> -ConnectionProviderName <String>
[-AppDomainBaseDirectory <String>] [<CommonParameters>]