Всем привет! Есть нужна использовать БД в проекте .NET Core 2.0. Знаком с БД mySQL. И собственно сам вопрос: Можно ли использовать и как нибудь подлючить mySQL к проекту на .NET Core 2.0? Проект является кросс-платформенным, т.е. нужно, чтобы БД работала на Linux Ubuntu и на Microsoft Windows. Если такое не возможно, тогда какие аналоги есть? И если можно, ссылку на документацию.
можно воспользоваться EntityFramework Core. Здесь официальная документация. Там же можно посмотреть о новшествах EF Core 2.0, а здесь русскоязычная документация
Подключить довольно просто: создаём класс, который наследуем от DbContext, в нём определяем классы через DbSet, которые будут нашими таблицами, после создаём миграции. Вот пример создания собственного контекста. В методе OnModelCreating
определяются отношения "Многие ко многим" (здесь используется подключение к UWP. Отличия только в способе подключения БД, в методе OnConfiguring
)
using Library.Core.Models.Entity;
using Microsoft.EntityFrameworkCore;
namespace Library.Core.DataBase
{
public class LibraryContext : DbContext
{
#region Properties
/// <summary>
/// Авторы.
/// </summary>
public DbSet<Author> Authors { get; set; }
/// <summary>
/// Издательства.
/// </summary>
public DbSet<Publishing> Publishers { get; set; }
/// <summary>
/// Контракты.
/// </summary>
public DbSet<Contract> Contracts { get; set; }
/// <summary>
/// Книги.
/// </summary>
public DbSet<Book> Books { get; set; }
/// <summary>
/// Читательские билеты.
/// </summary>
public DbSet<Reader> Readers { get; set; }
/// <summary>
/// Записи в билете.
/// </summary>
public DbSet<Record> Records { get; set; }
/// <summary>
/// Отделы.
/// </summary>
public DbSet<Genre> Genres { get; set; }
#endregion
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
{
optionsBuilder.UseSqlite("Filename=library.db");
}
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
modelBuilder.Entity<Record>()
.HasKey(r => new { r.BookId, r.ReadersId });
modelBuilder.Entity<Contract>()
.HasKey(c => new { c.AuthorId, c.PublishingId });
modelBuilder.Entity<Record>()
.HasOne(rc => rc.Book)
.WithMany(b => b.Records)
.HasForeignKey(rc => rc.BookId);
modelBuilder.Entity<Record>()
.HasOne(rc => rc.Readers)
.WithMany(r => r.Records)
.HasForeignKey(rc => rc.ReadersId);
modelBuilder.Entity<Contract>()
.HasOne(cn => cn.Author)
.WithMany(a => a.Contracts)
.HasForeignKey(cn => cn.AuthorId);
modelBuilder.Entity<Contract>()
.HasOne(cn => cn.Publishing)
.WithMany(p => p.Contracts)
.HasForeignKey(cn => cn.PublishingId);
}
}
}
Пример одной таблицы:
using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
using Template10.Mvvm;
namespace Library.Core.Models.Entity
{
/// <summary>
/// Книга.
/// </summary>
public class Book : BindableBase
{
private string _name;
private int _price;
private int _count;
private Genre _genre;
private Contract _contract;
private bool _selected;
public Book()
{
Records = new ObservableCollection<Record>();
}
/// <summary>
/// Id книги.
/// </summary>
public int Id { get; set; }
/// <summary>
/// Название книги.
/// </summary>
public string Name
{
get => _name;
set => Set(ref _name, value);
}
/// <summary>
/// Кол-во книг.
/// </summary>
public int Count
{
get => _count;
set => Set(ref _count, value);
}
/// <summary>
/// Стоимость книги.
/// </summary>
public int Price
{
get => _price;
set => Set(ref _price, value);
}
[NotMapped]
public bool IsSelected
{
get => _selected;
set => Set(ref _selected, value);
}
/// <summary>
/// Идентификатор контракта.
/// </summary>
public int? ContractId { get; set; }
/// <summary>
/// Автор-Издательство.
/// </summary>
public Contract Contract
{
get => _contract;
set => Set(ref _contract, value);
}
/// <summary>
/// Айди раздела.
/// </summary>
public int? GenreId { get; set; }
/// <summary>
/// Раздел книги.
/// </summary>
public Genre Genre
{
get => _genre;
set => Set(ref _genre, value);
}
public ObservableCollection<Record> Records { get; set; }
}
}
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Виртуальный выделенный сервер (VDS) становится отличным выбором
Добрый день, подскажите пожалуйста возможно ли разместить два AspNet Core проекта на одном домене? Есть проект основного сайта (site
Создаю кучу Task - в каждом игровой цикл, помещаю их в List<Task>: