2

私はオブジェクトを持っています

public class Object1{
public List<Object2> {get;set;}
}


public class Object2{
public Name{get;set;}
public Address{get;set;}
}

ユーザーが Object2 のインスタンスを 1 つだけ更新できる機能があります。したがって、Object2 を保存するための私のコードは次のようになります

[HttpPost]
public ActionResult SaveObject2(Object2 obj2)
{
  if (obj2.Id == null){
       //Add Logic
       obj1.Obj2List.Add(obj2)  
    }
   else{
      // Update logic
   }
}

ただし、obj2.Id が null になることはありません。Id は ObjectId 型です。ロジックをチェックして、挿入または更新が必要かどうかを確認するにはどうすればよいですか? 公式の C# ドライバーを使用して、asp.net MVC 3 と Mongo DB を使用しています。

ありがとう

4

1 に答える 1

2

型はObjectIdクラスではなく構造体であるため、決してnull. ObjectId.Empty代わりに を確認してください。

Object2ただし、注意が必要です。リクエスト間の隠しフィールドにの id を保存していると思います。その場合、悪意のあるユーザーが HTTP プロキシ (Fiddler など) を使用して ID を簡単に変更できることに注意してくださいObject2

やろうとしていることのコンテキストに応じて、オブジェクトを挿入または更新する必要があるかどうかをより確実に判断するために、いくつかの追加チェックを実行することをお勧めします。

于 2012-07-21T17:53:41.307 に答える