EF Core,将关系读入集合,反之亦然

时间:2016-08-17 19:24:15

标签: c# .net entity-framework uwp entity-framework-core

我是EF的初学者,如果问题很简单,请向前致歉。

有一个关系数据的uwp项目,我尝试使用EF-core实现数据库访问。数据有点像这样 -

class Class1
{
  public int Id {get; set; }
  public KeyedCollection<int, Class2> {get; set; }
  properties..
}

class Class2
{
  public int Id {get; set; }

  [ForeignKey("Class1ForeignKey")]
  public Class1 class1 { get; set; }

  public KeyedCollection<int, Class3> {get; set; }
  properties..
}
class class3
{
  public int Id {get; set; }

 [ForeignKey("Class2ForeignKey")]
  public Class2 class2 { get; set; }

  properties..
}

* KeyedCollection中的int是我用来方便访问的索引(我实际上并不需要保存它,它仍然作为项目的一部分保存了。)

据我了解,我不能在当前的类结构中继续与DB的关系。我想我可以在课堂上有另一个列表,并在保存/加载时查看...

但我想知道 - 是否有可能手动保存/加载到集合,维护r / ship,而没有类中的实际列表对象/属性?

我尝试使用FluentAPI并覆盖OnModelCreating(如https://docs.efproject.net/en/latest/modeling/relationships.html所示),但没有骰子 - 我收到有关遗失财产的投诉

1 个答案:

答案 0 :(得分:0)

回答我自己的问题。

r / ship要求:

  • 像Suichiro一样提到的ICollection。 KeyedCollection实现了它,所以没关系。
  • 一个ForeignKey标签(编辑我原来的帖子提供一个例子)。似乎它可以是可选的,但我没有尝试过。
  • 加载包含

    db.Class1List.Include(c1 =&gt; c1.Class2Col).ThenInclude(c2 =&gt; c2.Class3Col).ToList();

一旦我修好了所有这些,瞧。