我有一个对象
public class Object1{
public List<Object2> {get;set;}
}
public class Object2{
public Name{get;set;}
public Address{get;set;}
}
我有一个功能,用户可以仅更新Object2的一个实例。所以我保存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。
谢谢
最佳答案
ObjectId
类型是结构,而不是类-因此永远不会是null
。检查ObjectId.Empty
,而不是。
不过请注意:我想您将Object2
的ID存储在请求之间的某个隐藏字段中。如果是这种情况,请注意,恶意用户可以使用HTTP代理(例如Fiddler)轻松更改ID,从而使您相信Object2
是在更新而不是在添加。
根据您要执行的操作的上下文,我建议执行一些其他检查,以更可靠地确定是否应插入或更新对象。
关于c# - 使用MongoDB更新内部列表,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/11594142/