0

Немного проблем, пытающихся понять и настроить несколько отношений. Вот мои требования:Entity Framework Assoications - Code First Fluent API

У меня есть взаимно-однозначное отношение, где основной объект имеет свойство навигации, определенное в его классе, но зависимое не имеет. Ни один объект не может существовать без другого - как указать эту взаимосвязь в файле EntityConfiguration?

Вот классы: EDIT (удалены PropertyID от PropertyDetail - Свойство теперь Dependent)

public abstract class EntityBase 
{ 
    public int Id { get; set; } 
} 

public class PropertyDetail : EntityBase 
{ 
} 

public class Property : EntityBase 
{ 
    public int PropertyDetail { get; set; } 

    public PropertyDetail PropertyDetail { get; set; } 
} 

Является ли это более или делает Entity Framework требуется свойство навигации на обоих концах для одного к-одному, где оба требуются?

Кроме того, как правильно указать отношения «один ко многим», в которых принцип не знает об отношениях, - тем временем, зависимый объект содержит коллекцию принципа? Отношения необязательны на обоих концах.

public class Plaintiff : EntityBase 
{ 
} 

public class PlaintiffAttorney: EntityBase 
{ 
    public List<Plaintiff> PlaintiffList { get; set; } 
} 

Опять же, конфигурации выполняются в файлах EntityConfiguration. Любая помощь приветствуется. Заранее спасибо. :-)

+0

есть несколько несоответствий в вашем коде, как '' PropertyDetail'' имея '' PropertyId'' и унаследовать от '' EntityBase'', что уже есть свойство '' Id''. –

+0

Должен ли я отменить PropertyId для PropertyDetail и оставить свой унаследованный идентификатор в качестве его первичного ключа и внешнего ключа в Property? – Klue

+0

Я бы просто отказался от PropertyId и наследовал от EntityBase, несмотря на то, что мне не нравится этот подход. –

ответ

1

Чтобы создать один-к-одному, перейти к классу EntityConfiguration основного субъекта и написать это:

HasRequired(p => p.PropertyDetail).WithRequiredDependent(); 

Что касается отношений один-ко-многим, вы можете пойти к классу конфигурации зависимых лиц и сделать это:

HasOptional(d => d.PlaintiffList).WithMany(); 
+0

Просто, чтобы быть ясным, мне не нужен зависимый объект (PropertyDetail), чтобы обладать навигационным свойством, указывающим на свойство? И никакой конфигурации не требуется в классе Property EntityConfiguration? – Klue

+0

Большое вам спасибо за помощь. Не могу поверить, что это было так просто, lol. – Klue

Смежные вопросы