C# EF:如何在同一解决方案中跨多个项目使用DB?
我有三个项目:C# EF:如何在同一解决方案中跨多个项目使用DB?,c#,asp.net-mvc,database,entity-framework,entity-framework-6,C#,Asp.net Mvc,Database,Entity Framework,Entity Framework 6,我有三个项目: 包含所有模型的一个 一个包含我前端的控制器 一个包含我的客户前端的控制器 我使用实体框架(启用迁移、添加迁移、更新数据库)为项目(1)创建了一个数据库。 然后我启动项目(2),创建一个新项目,并将该项目保存在以前创建的数据库中。 但是,它没有使用所述数据库,而是创建了一个新数据库(与(1)中的数据库相同),并将项目保存在那里。 当启动项目(3)时,我相当肯定会发生同样的事情,创建第三个相同的数据库。然而,由于(3)不能创建新项目,只能读取它们,因此不会发生任何事情。 这显然不是我
<connectionStrings>
<add name="DefaultConnection" connectionString="Data Source=(LocalDb)\MSSQLLocalDB;AttachDbFilename=|DataDirectory|\aspnet-db.mdf;Integrated Security=True" providerName="System.Data.SqlClient" />
</connectionStrings>
第二个项目有一个类“Startup.Auth.cs”,其他项目没有。因为我不确定是否与此有关,这里有一部分:
public partial class Startup
{
public void ConfigureAuth(IAppBuilder app)
{
// Configure the db context, user manager and signin manager to use a single instance per request
app.CreatePerOwinContext(MyContext2.Create);
app.CreatePerOwinContext<ApplicationUserManager>(ApplicationUserManager.Create);
app.CreatePerOwinContext<ApplicationSignInManager>(ApplicationSignInManager.Create);
公共部分类启动
{
public void ConfigureAuth(IAppBuilder应用程序)
{
//将数据库上下文、用户管理器和登录管理器配置为每个请求使用一个实例
app.CreatePerOwinContext(MyContext2.Create);
app.CreatePerOwinContext(ApplicationUserManager.Create);
app.CreatePerOwinContext(ApplicationSignInManager.Create);
这是项目(1)中我创建上下文的部分。其他项目没有:
public class MyContext2 : IdentityDbContext<ApplicationUser>
{
public MyContext2()
: base("DefaultConnection")
{
}
public DbSet<Items> items { get; set; }
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
base.OnModelCreating(modelBuilder);
modelBuilder.Conventions.Remove<OneToManyCascadeDeleteConvention>();
}
}
公共类MyContext2:IdentityDbContext
{
公共MyContext2()
:base(“默认连接”)
{
}
公共数据库集项{get;set;}
模型创建时受保护的覆盖无效(DbModelBuilder modelBuilder)
{
基于模型创建(modelBuilder);
modelBuilder.Conventions.Remove();
}
}
Intellisense工作正常,它会自动填写支持的db.items,因此会设置引用。我正在通过private MyContext2 db=new Context()
调用数据库
无论我如何尝试,都无法使其正常工作,非常感谢您的帮助!您的连接字符串不正确,因为每个项目都有自己的DataDirectory如果我在项目之外的某个地方创建了字符串,例如在解决方案目录中,您能否使用SQL Server?一位同事是able来帮我。它现在按预期工作。谢谢你把我送到正确的方向。:D