Я работаю с Entity Framework Core и ASP. NET Core 3.1.
У меня есть две простые модели:
public class UserModel
{
public int UserModelId { get; set; }
public string Email { get; set; }
public string Password { get; set; }
public string Name { get; set; }
public string Surname { get; set; }
public string Token { get; set; }
public List<TherapyModel> Therapies { get; set; }
}
public class TherapyModel
{
public int TherapyModelId { get; set; }
public int UserModelId { get; set; }
public string Title { get; set; }
public int Quantity { get; set; }
public bool Monday { get; set; }
public bool Tuesday { get; set; }
public bool Wednesday { get; set; }
public bool Thursday { get; set; }
public bool Friday { get; set; }
public bool Saturday { get; set; }
public bool Sunday { get; set; }
public string ImgBase64 { get; set; }
public string ImgUrl { get; set; }
public int UserModelForeignKey { get; set; }
public UserModel UserModel { get; set; }
}
Теперь я инициализирую все в этом way:
public class DatabaseManager : DbContext
{
//Entities:
public DbSet<UserModel> UserModel { get; set; }
public DbSet<TherapyModel> TherapyModel { get; set; }
protected override void OnModelCreating( ModelBuilder modelBuilder )
{
modelBuilder.Entity<TherapyModel>().HasOne(p => p.UserModel)
.WithMany(s => s.Therapies)
.HasForeignKey(p => p.UserModelForeignKey);
}
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
=> optionsBuilder.UseMySql( @"Server=127.0.0.1;database=test2;uid=root;pwd=" ); );
}
Локальная база данных заполнена правильно, с правильными внешними ключами. Фактически этот запрос возвращает 3 строки:
select *
from usermodel
join therapymodel on therapymodel.UserModelForeignKey
Но, по какой-то причине, когда я пытаюсь получить UserModel
из моего кода C#, он всегда возвращает "Therapies" как NULL. Я получаю UserModel
двумя способами:
UserModel user = dbManager.UserModel.FirstOrDefault( user => user.UserModelId == iUserModel.UserModelId );
var users = dbManager.UserModel;
Терапии как для пользователя, так и для пользователей имеют значение NULL. Я действительно не могу понять почему. Любая помощь?