Доступ к контексту / другим объектам 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();

Это должно дать вам то, что вам нужно. Затем вы можете инкапсулировать свою логику, чтобы изменить любые предположения по мере необходимости.

Другие вопросы по тегам