请查看以下 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; }
}
我不确定我需要像 Currency1 中的 ICollection 这样的导航属性。如果涉及到 EF CodeFirst,我发现创建的数据库结构没有区别。Currency1 和 Currency2 的表格在我看来几乎相同。那么为什么或者什么时候添加这个额外的属性是有意义的呢?
当然,只要想到 POCO,我就知道我无法从 Currency2 对象访问任何国家/地区。例如:
var a = currency1.Countries; // works fine
var b = currency2.Countries; // does not even compile
但这是唯一的区别吗?换句话说:如果我不需要从 Currency2 对象访问国家/地区,是否不需要在 Currency2 类中添加相应的导航属性以用于 EF?这里有点糊涂...