Задать вопрос
@AntiVassal

Как правильно настроить связи в Entity Framework Core?

Есть две модели:
[Table("params")]
    public class ParamModel {
        [Key]
        [Column("id")]
        public int Id {
            get; set;
        }
        [Column("name")]
        public string Name {
            get; set;
        }
        [Column("value")]
        public string Value {
            get; set;
        }
        [Column("algorithm")]
        public int AlgorithmID {
            get; set;
        }
        public AlgorithmModel Algorithm {
            get; set;
        }
    }
    [Table("algorithms")]
    public class AlgorithmModel {
        [Key]
        [Column("id")]
        public int Id {
            get; set;
        }
        [Column("name")]
        public string Name {
            get; set;
        }
        public List<ParamModel> Params {
            get; set;
        }
    }

Связи построены таким образом:
modelBuilder.Entity<AlgorithmModel>().HasMany(p => p.Params).WithOne(p => p.Algorithm).
                HasForeignKey(p => p.AlgorithmID);
            modelBuilder.Entity<ParamModel>().HasOne(p => p.Algorithm).WithMany(p => p.Params).
                HasForeignKey(p=>p.AlgorithmID);

Но при считывании свойства Params из модели AlgorithmModel я получаю null. (база заполнена) Как исправить?
  • Вопрос задан
  • 95 просмотров
Подписаться 1 Простой 2 комментария
Решения вопроса 1
@Prorom-exe
.NET developer
Как то все не очень красиво сделано. Атрибуты [Column("name")] излишни. Понимаю что один алгоритм имеет несколько параметров, соответственно я бы у AlgorithmID добавил атрибут ForignKey и у списка List модификатор virtual
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы