C# 实体框架代码第一个POCO以及为什么/为什么不设置关系?

C# 实体框架代码第一个POCO以及为什么/为什么不设置关系?,c#,entity-relationship,entity-framework-4.1,C#,Entity Relationship,Entity Framework 4.1,我不知道如何真正表达我的问题,我可能会根据一些反馈来改变它 什么时候设置引用关系(在我的POCOs中)是一个好主意,这样我就可以从子记录或相反的记录中查找父记录?总是有办法“反向”查找项目或项目集合,这是一种好的做法吗?我知道这在很大程度上取决于我的应用程序,但我只是想在我开始塑造我的应用程序之前确保这一点。 假设我有两张桌子:州和国家。国家与国家有关系(多对一),反之亦然(一对多)。我的state类将有一个Country属性,我的Country类将有一个states集合属性。这是相当标准的 在

我不知道如何真正表达我的问题,我可能会根据一些反馈来改变它

什么时候设置引用关系(在我的POCOs中)是一个好主意,这样我就可以从子记录或相反的记录中查找父记录?总是有办法“反向”查找项目或项目集合,这是一种好的做法吗?我知道这在很大程度上取决于我的应用程序,但我只是想在我开始塑造我的应用程序之前确保这一点。 假设我有两张桌子:州和国家。国家与国家有关系(多对一),反之亦然(一对多)。我的state类将有一个Country属性,我的Country类将有一个states集合属性。这是相当标准的


在这个例子中,允许一个国家查找相关的州可能是有意义的。有人能想出一个我可能不关心这种关联的时间,这样我就不会有为一个集合或单个项目加载项目的开销吗?

这更多的是关于实体的设计决策。如果首先使用代码,则始终需要导航属性来在数据库中创建关系。您可以从一个简单的方法开始,在有意义的一侧定义属性,并仅当您需要它时才将其添加到另一侧

在某些情况下,您知道如果没有父实体,您将永远无法使用子实体(这导致了关于聚合根的理论,即没有父实体,子实体就不可能存在)。在这种情况下,子级不需要具有指向父级的导航属性


在您的场景中,您是否希望使用
,而不使用
国家
?如果是,您可能想知道
国家/地区
包含哪些
州,但同时您可能想知道
国家/地区
属于哪个
州,因此在两侧定义导航属性是有意义的。

所以您的问题不是如何做到这一点,但你为什么要这么做?对吗?@Sergio:对。我本想把它写进我的书名里。我更新了。这正是我正在寻找的,你发送的链接也帮了我很大的忙!