0

特定の (計算された) プロパティが別の EntityObject で変更されたときに、新しい EntityObject を Context に追加する必要があります。EntityObject 自体から Context へのアクセスはないようです。

たとえば、私の「従業員」部分クラスにはカスタム プロパティがあります。

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」が設定されている場合、同じコンテキストの下にある「Assumptions」EntitySetに新しいEntityObject「Assumption」を1つ作成して追加する必要がある場合があります。

そのような別の EntityObjects から EntityObjects にアクセスするのは良い設計ではないことはわかっていますが、他の方法でこのニーズをどのように解決できますか?

4

1 に答える 1

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();

これで必要なものが得られるはずです。次に、ロジックをカプセル化して、必要に応じて仮定を変更できます。

于 2013-08-14T16:25:29.430 に答える