Entity Framework One to Many без свойства навигации по Коллекции - PullRequest
0 голосов
/ 09 апреля 2020

В Entity Framework с свободно настраиваемой конфигурацией у меня есть объект LeaseTrackingType, который имеет отношение один ко многим с LeaseTracking. Где каждое отслеживание аренды имеет тип отслеживания аренды.

Однако с точки зрения кода не имеет смысла иметь коллекцию LeaseTrackings. Как будто вы никогда не собираетесь использовать это свойство навигации.

Вопрос: Как мне смоделировать отношение один ко многим без свойства навигации коллекции LeaseTrackings?

Объекты:

 public class LeaseTracking
 {
    public int Id { get; set; }
    public int LeaseTrackingTypeId { get; set; }
    public LeaseTrackingType LeaseTrackingType { get; set; }
 }

 public class LeaseTrackingType
 {
    public int Id { get; set; }
    public string Name { get; set;}
    public virtual Collection<LeaseTracking> LeaseTrackings { get; set;}
 }

И сопоставление конфигурации:

    public class LeaseTrackingConfiguration : EntityTypeConfiguration<LeaseTracking>
    {
        public LeaseTrackingConfiguration()
        {
            ToTable("LeaseTracking");

            Property(entity => entity.Id);
            HasRequired(entity => entity.LeaseTrackingType)
                .WithMany(entity => entity.LeaseTrackings)
                .HasForeignKey(entity => entity.LeaseTrackingTypeId);
        }
    }

    public class LeaseTrackingTypeConfiguration : EntityTypeConfiguration<LeaseTrackingType>
    {
        public LeaseTrackingTypeConfiguration()
        {
            ToTable("LeaseTrackingType");

            Property(entity => entity.Id);
            Property(entity => entity.Name).;
        }
    }

1 Ответ

0 голосов
/ 09 апреля 2020

в конструкторе не указывает на это в функции WithMany и избавляется от virtual Collection в LeaseTrackingType классе

  public LeaseTrackingConfiguration()
        {
            ToTable("LeaseTracking");

            Property(entity => entity.Id);
            HasRequired(entity => entity.LeaseTrackingType)
                .WithMany()
                .HasForeignKey(entity => entity.LeaseTrackingTypeId);
        }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...