Две базы данных в одном проекте ASP.NET MVC
Я не знаю, как использовать две разные базы данных в одном проекте. ASP.NET MVC
Что я уже пробовал:
У меня есть такая структура:
Ссылка
Я использую два разных контекста.
Контекст Firs, код PGDbContext. cs:
namespace Inspeccions.Models { public class PGDbContext : DbContext { public PGDbContext() : base( "ActivitatsEntities") { } public virtual DbSet<activitats_activitat> Usr { get; } protected override void OnModelCreating(DbModelBuilder modelBuilder) { throw new UnintentionalCodeFirstException(); } } }
Модельные особенности.Контексте.CS коде :
namespace Inspeccions.Models { using System; using System.Data.Entity; using System.Data.Entity.Infrastructure; public partial class InspeccionsEntities : DbContext { public InspeccionsEntities() : base("name=InspeccionsEntities") { } protected override void OnModelCreating(DbModelBuilder modelBuilder) { throw new UnintentionalCodeFirstException(); } public virtual DbSet<Criteri> Criteris { get; set; } public virtual DbSet<CriterisInspeccio> CriterisInspeccios { get; set; } public virtual DbSet<CriterisTipusInspeccio> CriterisTipusInspeccios { get; set; } public virtual DbSet<Inspeccio> Inspeccios { get; set; } public virtual DbSet<TipusInspeccio> TipusInspeccios { get; set; } public virtual DbSet<Usuari> Usuaris { get; set; } } }
Веб.код конфигурации :
<connectionStrings> <add name="ActivitatsEntities" connectionString="Server=***;port=5432;Database=sitsalt; User Id=***;Password=***" providerName="Npgsql" /> <add name="InspeccionsEntities" connectionString="metadata=res://*/Models.ModelInspeccions.csdl|res://*/Models.ModelInspeccions.ssdl|res://*/Models.ModelInspeccions.msl;provider=System.Data.SqlClient;provider connection string="data source=SLTPANOLI;initial catalog=Inspeccions;integrated security=True;MultipleActiveResultSets=True;App=EntityFramework"" providerName="System.Data.EntityClient" /></connectionStrings> <entityFramework> <defaultConnectionFactory type="System.Data.Entity.Infrastructure.SqlConnectionFactory, EntityFramework" /> <providers> <provider invariantName="System.Data.SqlClient" type="System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer" /> <provider invariantName="Npgsql" type="Npgsql.NpgsqlServices, EntityFramework6.Npgsql" /> </providers> </entityFramework> <system.data> <DbProviderFactories> <add name="Npgsql Data Provider" invariant="Npgsql" support="FF" description=".Net Framework Data Provider for Postgresql" type="Npgsql.NpgsqlFactory, Npgsql" /> </DbProviderFactories> </system.data>
Код ActivitatsController:
public ActivitatsController() { _context = new PGDbContext(); } // GET: Activitats public ActionResult Index() { return View(_context.Usr.ToList()); }
Если я создаю проект только с одним из подключений и контекста, он работает, но когда я помещаю его в тот же проект, ModelInspeccions работает, но PDGbContext возвращает нулевой DbSet...
Кто-нибудь может мне помочь, пожалуйста? Спасибо!
Afzaal Ahmad Zeeshan
Хорошо, но где вы настраиваете обе базы данных? Как правило, он работает просто идеально, нет никаких проблем в использовании нескольких баз данных. Вам просто нужно настроить, какой контекст куда идет и откуда читается.
Кроме того, взгляните на Единица работы и шаблон репозитория подробнее об этом.