Доступ к контексту / другим объектам EntityObject из частичного класса
Мне нужно добавить новый EntityObject в Context, когда одно конкретное (рассчитанное) свойство изменяется в другом EntityObject. Кажется, нет доступа к Context ни от одного EntityObject.
Например, мой частичный класс 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
... и когда вышеупомянутый "Возраст" установлен, мне иногда нужно создать и добавить один новый EntityObject "Предположение" к EntitySet "Предположения", который находится в том же Контексте.
Я знаю, что это не очень хороший дизайн для доступа к EntityObjects из других EntityObjects, но как я могу решить эту проблему каким-либо другим способом?
1 ответ
Добавьте другой класс к вашему решению, который является частичным классом вашего 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();
Это должно дать вам то, что вам нужно. Затем вы можете инкапсулировать свою логику, чтобы изменить любые предположения по мере необходимости.