Obecnie próbuję użyć tego samego DbContext (mam dwie bazy danych o identycznej strukturze) w mojej aplikacji. Nie jestem do końca pewien, co robię źle, ale oto mój obecny kod - mam nadzieję, że powinno być całkiem oczywiste, co próbuję zrobić. Używam najpierw bazy danych EF (której błąd na dole nie sugeruje).Entity Framework - używanie tego samego DbContext z różnymi ciągami połączeń
Mój kod fabryczny kontekst:
public class HOLContextFactory
{
public static HOLDbEntities Create()
{
return new HOLDbEntities(); // Works
}
public static HOLDbQuoteEntities CreateQuote()
{
return new HOLDbQuoteEntities(); // Gives error
}
}
public partial class HOLDbQuoteEntities : HOLDbEntities
{
public HOLDbQuoteEntities()
: base("HOLDbQuoteEntities") // This should send "HOLDbQuoteEntities" as the base connection string?!
// Also tried "name=HOLDbQuoteEntities"
{
}
}
Web.config ciągów połączenia:
<add name="HOLDbEntities" connectionString="metadata=res://*/HOLDbContext.csdl|res://*/HOLDbContext.ssdl|res://*/HOLDbContext.msl;provider=System.Data.SqlClient;provider connection string=<connstringdetails>" providerName="System.Data.EntityClient" />
<add name="HOLDbQuoteEntities" connectionString="metadata=res://*/HOLDbContext.csdl|res://*/HOLDbContext.ssdl|res://*/HOLDbContext.msl;provider=System.Data.SqlClient;provider connection string=<connstringdetails>" providerName="System.Data.EntityClient" /> // using diff database - same structure
Błąd Dostaję przy użyciu "HOLDbQuoteEntities":
kod wygenerowany przy użyciu Szablony T4 dla bazy danych First i Modelu Pierwsze rozwinięcie może nie działać poprawnie, jeśli jest używane w Code First m oda. Aby kontynuować korzystanie z Database First lub Model First, należy upewnić się, że ciąg połączenia Entit został określony w pliku konfiguracyjnym aplikacji wykonującej numer . Aby skorzystać z tych klas, które zostały wygenerowane z Database pierwszej lub modelu pierwsze, kod najpierw dodać żadnej dodatkowej konfiguracji za pomocą atrybutów lub API DbModelBuilder a następnie usunąć kod, który generuje ten wyjątek **
To jest rzeczywiście, jak to zrobiłem w końcu. –