пожалуйста, посмотрите на следующие POCO:
public class Country
{
[Key]
public Guid ID { get; set; }
[Required]
public virtual Currency Currency { get; set; }
}
public class Currency1
{
[Key]
public Guid ID { get; set; }
public virtual ICollection<Country> Countries { get; set; }
}
public class Currency2
{
[Key]
public Guid ID { get; set; }
}
Я не совсем уверен, для чего мне нужны свойства навигации, такие как ICollection в Currency1. Если говорить о EF CodeFirst, я не вижу разницы в созданной структуре базы данных. Таблицы Currency1 и Currency2 выглядят для меня практически одинаково. Так почему или когда имеет смысл добавить это дополнительное свойство?
Конечно, просто думая о POCO, я понимаю, что не могу получить доступ ни к каким странам из объекта Currency2. Например:
var a = currency1.Countries; // works fine
var b = currency2.Countries; // does not even compile
Но это единственная разница? Другими словами: если мне не нужен доступ к странам из объекта Currency2, нет необходимости добавлять соответствующее свойство навигации в класс Currency2 для целей EF? Вид здесь запутался ...