不带EF的域类中的导航属性

本文关键字:导航 属性 EF 不带 | 更新日期: 2023-09-27 18:00:24

我的ElementGroup类具有类型为List<Element>Elements属性。为了能够导航回其父级ElementGroup,我的Element类有一个类型为ElementGroupElementGroup属性。通常我会使用实体框架中的导航属性来设置它,但我想在添加数据层之前在域层中临时设置它。这是怎么做到的?

这种方法似乎有效,但它需要ElementGroup对象的局部变量:

ElementGroup eg = new ElementGroup("Dummy Name", 100);
competition.ElementGroups.Add(eg);
eg.Elements.Add(new Element(new DateTime(2014, 9, 14, 12, 0, 0)) { ElementGroup = eg });
eg.Elements.Add(new Element(new DateTime(2014, 9, 14, 13, 0, 0)) { ElementGroup = eg });

我想知道是否有一种方法可以做到这一点,而不需要通过这样做来创建局部变量:

competition.ElementGroups.Add(new ElementGroup("Dummy Name", 100)
{
  Elements = new List<Element> {
    new Element(new DateTime(2014, 9, 14, 12, 0, 0)) { },
    new Element(new DateTime(2014, 9, 14, 13, 0, 0)) { }
  }
});

我不知道如何使用对象初始化器大括号或其他技术将当前的ElementGroup分配给新的ElementElementGroup属性。

不带EF的域类中的导航属性

ElementGroup:中创建一个AddElement方法

public Element AddElement(DateTime datetime)
{
    var element = new Element(datetime) { ElementGroup = this };
    this.Elements.Add(element);
    return element;
}