没有EF的域类中的导航属性

时间:2014-04-26 22:46:42

标签: c# entity-framework navigation-properties

我的ElementGroup类有一个Elements属性,类型为List<Element>。要启用导航回其父ElementGroup,我的Element类具有ElementGroup属性,其类型为ElementGroup。通常我会使用Entity Framework中的导航属性来设置它,但我想在添加数据层之前在我的域层中暂时设置它。这是怎么做到的?

这种方法似乎有效,但它需要我的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分配给新Element的{​​{1}}属性。

1 个答案:

答案 0 :(得分:0)

AddElement中创建ElementGroup方法:

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