如何在Entity Framework Core中使用类似于参考表的表

时间:2018-07-28 06:11:23

标签: c# entity-framework entity-framework-core

我有三个表,一个用于存储元信息,一个用于存储站点,另一个表用于将元信息引用到站点。

但是我似乎无法弄清楚如何正确实现它。在普通的sql中,这相当容易,但是我想学习实体框架的核心方法。

您将如何解决?

IncludeHubEntry;

public interface IIncludeHubEntry : ISiteBase
{
    string Rel { get; set; }
    int Index { get; set; }
    string Integrity { get; set; }
    string Src { get; set; }
    bool Defer { get; set; }
    bool Async { get; set; }
    string Type { get; set; }
    string Sizes { get; set; }
    bool IsDefault { get; set; }
    CorsCrossoriginTypes Crossorigin { get; set; }
    IncludeEntryTypes EntryType { get; set; }
    int OrderBy { get; set; }
    string Line { get; }
}

IncludeHubIndex.cs(包含HubEntry和Site之间的引用):

public interface IIncludeHubIndex : ISiteBase
{
    int IncludeHubId { get; set; }
    int SiteId { get; set; }
}

Site.cs:

public interface ISite : ISiteBase
{
    int AppId { get; set; }
    int CultureCollectionId { get; set; }
    string Description { get; set; }
    string WorkName { get; set; }
    CultureCollection Culture { get; set; }
    IEnumerable<IncludeHub> Hub { get; set; }
}
  

要明确:我希望IEnumerable Hub包含   IncludeHubIndex

中引用的元素

1 个答案:

答案 0 :(得分:0)

几天后,尽管到目前为止,我已经达成共识,但实际上也必须这样做-

将所有3个类映射到它们的表,中间是

public interface IIncludeHubIndex : ISiteBase
{
    IIncludeHubEntry IncludeHub { get; set; }
    ISite Site { get; set; }
}

,然后从本质上讲,联接的两个侧面都包含一个列表,它是中间对象,它实际上并不理想,并且使用Nhibernate而不是EF Core可以避免此问题,尽管这似乎是EF Core缺少的功能当前-如果我错了,请纠正我。