Всем привет! Есть нужна использовать БД в проекте .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; }
}
}
Оборудование для ресторана: новинки профессиональной кухонной техники
Частный дом престарелых в Киеве: комфорт, забота и профессиональный уход
Добрый день, подскажите пожалуйста возможно ли разместить два AspNet Core проекта на одном домене? Есть проект основного сайта (site
Создаю кучу Task - в каждом игровой цикл, помещаю их в List<Task>: