Entity Framework автоматическое связывание отношений не работает в .net Core 3.0 - PullRequest
0 голосов
/ 10 октября 2019
 public class tbl_User
    {
        [Key]
        public int userId { get; set; }
        public string Name { get; set; }
        [Display(Name = "Branch")]
        public int masterbranchId { get; set; }
        //[ForeignKey("masterbranchId")]
        public virtual tbl_MasterBranch MasterBranch { get; set; }
}

Это класс, и есть другой класс для tbl_MasterBranch. Когда мы возвращаем пользователей ссылка на MasterBranch равна нулю. Это работало нормально в MVC5.

1 Ответ

1 голос
/ 10 октября 2019

Вы в настоящее время (и приложение MVC5 ранее) полагались на отложенную загрузку. Ключевым отличием EF Core является то, что отложенная загрузка должна быть явно включена с помощью:

services.AddDbContext<MyContext>(o =>
    o.UseSqlServer(Configuration.GetConnectionString("Default"))
     .UseLazyLoadingProxies());

Однако вам действительно следует избегать отложенной загрузки. Для удобства можно добавить, что существует масса потенциальных ловушек, которые могут серьезно повлиять на производительность вашего приложения и привести к падению производительности базы данных. Если вы хотите включить связанные сущности, лучше всего загружать их при запросах:

var users = await _context.Users.Include(x => x.MasterBranch).ToListAsync();
...