单独文件中的多个localdb实例

时间:2014-11-11 02:30:31

标签: .net entity-framework ef-migrations localdb

我试图在同一台机器上多次运行同一个项目,并且每个实例都需要它自己的不同localdb实例存储在它自己的个人mdf文件中(这可能听起来很奇怪)但我有理由这样做)。目前我尝试使用相同的连接字符串名称和不同的文件,但这不起作用。这是一个示例连接字符串:

<add name="dbContext"
     connectionString="Data Source=(LocalDb)\v11.0;AttachDbFileName=|DataDirectory|\db-<string-unique-to-project-instance-1>.mdf;Initial Catalog=dbContext;Persist Security Info=True;Trusted_Connection=False;" 
     providerName="System.Data.SqlClient" />

但是,在运行项目时,即使查询加载到内存中的连接字符串显示正确的值,也不会按预期创建数据库文件。

什么连接字符串允许多个localdb实例/我还需要做其他事情吗?

注意:我还尝试使用不同的连接字符串名称无效。

1 个答案:

答案 0 :(得分:3)

所有这些数据库都是在同一个LocalDB实例中创建的,这意味着它们的名称会发生​​冲突。

让我们取你提供的连接字符串。

所有数据库都在自动LocalDB实例v11.0中创建:

Data Source=(LocalDb)\v11.0

每个数据库都在一个单独的,唯一命名的文件中创建:

AttachDbFileName=|DataDirectory|\db-<string-unique-to-project-instance-1>.mdf

但是所有这些都以相同的数据库名称附加到LocalDB实例:

Initial Catalog=dbContext

解决此问题的最简单方法是为每个数据库指定一个唯一的名称,例如:

Initial Catalog=dbContext-<string-unique-to-project-instance-1>

您还可以尝试创建多个命名的LocalDB实例,每个项目一个,但除非您有充分的理由,否则我将使用自动LocalDB实例中的唯一数据库名称。