PostgreSQL

Данное руководство устарело. Актуальное руководство: Руководство по ASP.NET Core

Последнее обновление: 1.11.2015

Для подключения к базе данных PostgreSQL в ASP.NET MVC вначале добавим в проект пакеты Entity Framework и Npgsql.EntityFramework:

PostgreSQL в ASP.NET MVC 5

После добавления пакетов надо изменить файл конфигурации web.config. Вначале добавим строку подключения, определив в файле секцию connectionStrings:

<connectionStrings>
    <add name="BookContext" providerName="Npgsql" 
         connectionString="Server=127.0.0.1;User Id=postgres;Password=password;Port=5432;Database=BookStore;" />
</connectionStrings>

В строке подключения надо указать адрес сервера (параметр Server), id пользователя (по умолчанию postgres), пароль для данного пользователя, номер порта (по умолчанию 5432) и название базы данных.

После добавления пакетов из NuGet внизу файла web.config у нас будет следующая секция entityFramework:

<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, Npgsql.EntityFramework" />
  </providers>
</entityFramework>

В этой секции изменим вторую строку, чтобы в качестве провайдера по умолчанию использовался Npgsql:

<defaultConnectionFactory type="Npgsql.NpgsqlServices, Npgsql.EntityFramework" />

И затем под секцией 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>

Это вся необходимая конфигурация для работы с PostgreSQL. Все остальные принципы работы будут теми же. Так же определяем класс контекста и модели:

public class BookContext : DbContext
{
    public DbSet<Book> Books { get; set; }
}

public class Book
{
    public int Id { get; set; }
    public string Name { get; set; }
    public string Author { get; set; }
    public int Price { get; set; }
}

И в методе контроллера добавляем данные в БД и передаем их в представление:

public class HomeController : Controller
{
    BookContext db = new BookContext();
    public ActionResult Index()
    {
        return View(db.Books.ToList());
    }
	public ActionResult Create()
    {
        return View();
    }
    [HttpPost]
    public ActionResult Create(Book book)
    {
        db.Books.Add(book);
        db.SaveChanges();
            
        return RedirectToAction("Index");
    }
}
Помощь сайту
Юмани:
410011174743222
Перевод на карту
Номер карты:
4048415020898850