Как сделать связь между моделями?
Есть две таблицы:
Users - в ней хранятся пользователи
Roles - в ней хранятся должности пользователей
Установлена связь в таблице Users:
ALTER TABLE `Users`
ADD CONSTRAINT `Users_ibfk_1` FOREIGN KEY (`RoleId`) REFERENCES `Roles` (`Id`) ON DELETE RESTRICT ON UPDATE RESTRICT;
COMMIT;
При использовании EntityFrameworkCore не получается связать две таблицы:
using Microsoft.EntityFrameworkCore;
using Microsoft.Extensions.Hosting;
using MySQL.Data.EntityFrameworkCore;
using Mysqlx.Crud;
using System.ComponentModel.DataAnnotations.Schema;
using System.Reflection.Metadata;
namespace WebApplication3
{
public class DatabaseContext : DbContext
{
public DbSet<User> Users { get; set; }
public DbSet<Role> Roles { get; set; }
public DatabaseContext(DbContextOptions<DatabaseContext> options) : base(options) { }
}
public class User
{
public int Id { get; set; }
public string? Name { get; set; }
public int RoleId { get; set; }
public virtual Role Role { get; set; }
}
public class Role
{
public int Id { get; set; }
public string Name { get; set; }
}
}
Таблица Users
Таблица Roles:
Источник: Stack Overflow на русском