Извините, заранее спасибо, я новичок в ASP и не понимаю некоторые идеи.Я хочу, чтобы когда мое приложение запускалось, если его не было, мои базы данных создавались.Я работаю с Postgres 9.2 и Entity Framework 6.1.3 и Npgsql.EntityFramework 2.2.7.
Если я удалю строку "modelBuilder.HasDefaultSchema (" public ");"в DBContext Class схема создается как "dbo", но я хочу, чтобы схема создавалась в общедоступной схеме, и, если я оставляю "modelBuilder.HasDefaultSchema (" public ");"Я получаю эту ошибку:
Исключение типа 'Npgsql.NpgsqlException' произошло в EntityFramework.dll ... "
Дополнительная информация: ОШИБКА: 42P06: схема" public "уже существует
что я делаю неправильно?
Это мой код:
часть web.config для подключения к postgres.
<connectionStrings>
<add name="DefaultConnectionString" connectionString="server=localhost;user id=postgres;password=1234;database=Test" providerName="Npgsql" />
<system.data>
<DbProviderFactories>
<remove invariant="Npgsql" />
<add name="Npgsql Data Provider" invariant="Npgsql" description=".Net Data Provider for PostgreSQL" type="Npgsql.NpgsqlFactory, Npgsql, Culture=neutral, PublicKeyToken=5d8b90d52f46fda7" />
</DbProviderFactories>
Затем я создаю несколько моделей и один класс, наследуемый от dbcontext:
public class ContextoAplicacion : DbContext
{
public ContextoAplicacion() :base("name=DefaultConnectionString")
{
}
public DbSet<Afiliado> afiliados { get; set; }
public DbSet<Empresa> empresas { get; set; }
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
modelBuilder.HasDefaultSchema("public");
}
}
, и, наконец, добавляю следующий код в мой HomeController:
ContextoAplicacion _context;
public HomeController()
{
_context = new ContextoAplicacion();
}
public ActionResult Index()
{
var data = _context.afiliados.ToList();
return View();
}
Заранее спасибо !!! Фернандо