当在另一个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并不是一个好的设计,但我怎样才能以其他方式解决这个问题呢?
答案 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();
那应该能满足你的需求。然后,您可以根据需要封装逻辑以修改任何假设。