我试图在同一台机器上多次运行同一个项目,并且每个实例都需要它自己的不同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实例/我还需要做其他事情吗?
注意:我还尝试使用不同的连接字符串名称无效。
答案 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实例中的唯一数据库名称。