从部分类访问Context / other EntityObjects

时间:2013-08-14 07:56:09

标签: entity-framework partial-classes entityobject

当在另一个EntityObject中更改一个特定(计算)属性时,我需要向Context添加一个新的EntityObject。似乎没有从任何EntityObject本身访问Context。

例如,我的“Employee”分部类有一个自定义属性:

Public Property Age As Integer
      Get
          Return _Age
      End If
      End Get
      Set(value As Integer)
          'Here based on some conditions, I sometimes need to add a new 
          'EntityObject to (or modify an existing EntityObject) in an EntitySet "Assumptions"
          'HOW TO DO THAT ?

         _Age=value
      End Set
End Property
Private _Age as Integer

...当设置上述“Age”时,我有时需要创建一个新的EntityObject“Assumption”并将其添加到同一个Context下的“Assumptions”EntitySet中。

我知道从其他EntityObjects访问EntityObjects并不是一个好的设计,但我怎样才能以其他方式解决这个问题呢?

1 个答案:

答案 0 :(得分:0)

在您的解决方案中添加另一个类,该类是您正在执行此操作的EntityObject的部分类。

向该类添加属性:

public partial class EntityObject
{
    private int _age;
    public List<Assumption> Assumptions { get; set; }
    public int Age
    {
        get { return _age; }
        set { _age = value; Assumptions.Add(new Assumption("Age", value); }
    }
}

使用EF查询EntityObject类时,需要在查询中“包含”导航属性。

var db = new DatabaseContext();
var myObjects = db.EntityObjects.Include("Assumption").Where(....).ToList();

那应该能满足你的需求。然后,您可以根据需要封装逻辑以修改任何假设。