我有三个表,一个用于存储元信息,一个用于存储站点,另一个表用于将元信息引用到站点。
但是我似乎无法弄清楚如何正确实现它。在普通的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
中引用的元素
答案 0 :(得分:0)
几天后,尽管到目前为止,我已经达成共识,但实际上也必须这样做-
将所有3个类映射到它们的表,中间是
public interface IIncludeHubIndex : ISiteBase
{
IIncludeHubEntry IncludeHub { get; set; }
ISite Site { get; set; }
}
,然后从本质上讲,联接的两个侧面都包含一个列表,它是中间对象,它实际上并不理想,并且使用Nhibernate而不是EF Core可以避免此问题,尽管这似乎是EF Core缺少的功能当前-如果我错了,请纠正我。