gpt4 book ai didi

c# - 为什么我的项目连接到不同的数据源?

转载 作者:行者123 更新时间:2023-11-30 14:26:35 24 4
gpt4 key购买 nike

我有 2 个解决方案,使用 EF 6.0,并且都使用完全相同的默认配置。尽管如此,它们仍然连接到 2 个不同的数据源!? (localdb)\mssqllocaldb 和 .\SQLEXPRESS。

我的配置:

  <entityFramework>
<defaultConnectionFactory type="System.Data.Entity.Infrastructure.LocalDbConnectionFactory, EntityFramework">
<parameters>
<parameter value="mssqllocaldb" />
</parameters>
</defaultConnectionFactory>
<providers>
<provider invariantName="System.Data.SqlClient" type="System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer" />
</providers>
</entityFramework>

两者的 DbContext 也相似:

public class PlusUltraContext : DbContext
{
public PlusUltraContext() : base("PlusUltra")
{

}

protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
modelBuilder.Conventions.Remove<PluralizingTableNameConvention>();

base.OnModelCreating(modelBuilder);
}

public DbSet<Models.Article> Articles { get; set; }
public DbSet<Models.ArticleComment> Comments { get; set; }
}

对比

public class InvoicingContext : DbContext
{
public DbSet<Address> Addresses { get; set; }
public DbSet<Company> Companies { get; set; }
public DbSet<Country> Countries { get; set; }
public DbSet<Currency> Currencies { get; set; }
public DbSet<Invoice> Invoices { get; set; }
public DbSet<InvoiceLine> InvoiceLines { get; set; }
public DbSet<Person> Persons { get; set; }
public DbSet<Unit> Units { get; set; }

public InvoicingContext() : base("Invoicing")
{

}

protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
modelBuilder.Conventions.Remove<PluralizingTableNameConvention>();
base.OnModelCreating(modelBuilder);
}
}

但是,当我运行 Update-Database 命令时,第一个项目连接到 .\SQLEXPRESS,而另一个连接到 (localdb)\mssqllocaldb

Target database is: 'PlusUltra' (DataSource: (localdb)\mssqllocaldb, Provider: System.Data.SqlClient, Origin: Convention).

对比

Target database is: 'Invoicing' (DataSource: .\SQLEXPRESS, Provider: System.Data.SqlClient, Origin: Convention).

我的问题

我可以检查哪些内容以了解它们行为不同的原因?

最佳答案

感谢这篇文章,我找到了答案:

EF6 can't find LocalDBConnectionFactory

在使用 .\SQLEXPRESS 的解决方案中,启动项目是另一个类库,它不包含 EF 配置文件。一旦我将我的启动项目设置为包含配置文件的项目,一切都按预期工作,并且使用了 mssqllocaldb。

关于c# - 为什么我的项目连接到不同的数据源?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34974649/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com