Данное руководство устарело. Актуальное руководство: Руководство по ASP.NET Core
MySQL является одной из самых распространенных баз данных, которая может использоваться также и в связке с ASP.NET MVC. Для работы с MySQL нам нужен естественно сам MySQL Server, на котором будет находиться база данных. Кроме того, поскольку мы будем работать с C#, то на целевом компьютере должен быть установлен также MySQL Connector.NET 6.9.6. Но необязательно устанавливать раздельно, поскольку при установке сервера MySQL в последних версиях можно сразу установить и MySQL Connector.
Поскольку мы будем взаимодействовать с базой данных через Entity Framework, то соответственно добавим нужный пакет через NuGet. И также через NuGet добавим в проект еще один пакет, который называется MySql.Data.Entity:
Вместе с этим пакетом в проект также будет установлен другой пакет - MySql.Data.
Затем в файле web.config определим подключение, которое будет использоваться:
<connectionStrings> <add name="conn" providerName="MySql.Data.MySqlClient" connectionString="server=localhost;UserId=root;Password=password1;database=mobiledb;CharSet=utf8;Persist Security Info=True" /> </connectionStrings>
В данном случае база данных будет называться mobiledb. При этом важно указать точные данные для параметра UserId и Password - соответственно логин и пароль для подключения к базе данных.
Далее добавим простенькую модель и контекст данных:
public class Phone { public int Id { get; set; } public string Name { get; set; } public string Company { get; set; } } [DbConfigurationType(typeof(MySql.Data.Entity.MySqlEFConfiguration))] public class MobileContext : DbContext { public MobileContext(): base("conn") { } public DbSet<Phone> Phones { get; set; } }
При создании контекста данных к нему надо применить атрибут DbConfigurationType(typeof(MySql.Data.Entity.MySqlEFConfiguration)). В остальном особых различий при подключении к mysql по сравнению с MSSQL нет.
Например, пусть у нас есть два действия по добавлению и выводу объектов:
private MobileContext db = new MobileContext(); public ActionResult Index() { return View(db.Phones.ToList()); } public ActionResult Create() { return View(); } [HttpPost] public ActionResult Create(Phone phone) { db.Phones.Add(phone); db.SaveChanges(); return RedirectToAction("Index"); }
Добавим несколько объектов:
И затем с помощью дополнительных утилит, например, MySQL Workbench, можно уидеть созданную азу данных, ее структуру и получить с помощью запроса хранящиеся там объекты: