可能想得太多了,但我正在尝试建立下面的关系。我有一个组织对象。每个组织可以有多个AuthorizedThirdParties。AuthorizedThirdParties也是组织。我该如何做到这一点?对于某些上下文。授权的第三方是一种表示“这个特定的组织(不是我)可以访问我的组织的某些信息”的一种方式。
组织模型(为简洁起见进行了修剪):
public class Organization
{
[Key]
public int OrganizationId { get; set; }
public string Name { get; set; }
public virtual ICollection<Organization> AuthorizedThirdParties { get; set; }
}我正在考虑做一些流利的API的东西,但似乎不知道如何做。我已经为其他几个m2m关系设置了,但每个关系都引用了不同的模型(如组织和用户)。
发布于 2014-02-19 06:39:42
你并没有想得太多。数据结构很复杂,应该正确处理。您描述的数据结构是一个graph。表示图的方法有很多种。其中包括:
根据您的预期用途,每个工具都有自己的优点和缺点。作为起点,点击维基百科:
最好的做法是研究如何表示数据和如何存储数据,这里是一个开始链接:
发布于 2014-02-19 09:15:45
如果关系是多对多的(一个组织可以有多个AuthorizedThirdParties,一个组织可以是许多其他组织的授权第三方),则只需使用标准映射即可。无论目标实体是相同还是不同,都没有什么特殊之处:
modelBuilder.Entity<Organization>()
.HasMany(o => o.AuthorizedThirdParties)
.WithMany()
.Map(m =>
{
m.ToTable("AuthorizedThirdPartyMap");
m.MapLeftKey("OrganizationId");
m.MapRightKey("AuthorizedThirdPartyId");
});https://stackoverflow.com/questions/21866879
复制相似问题