gol*_*ger 8 c# mongodb mongodb-.net-driver
我用getter和setter创建了一个简单的对象:
public class MemberCanonical : IMemberCanonical
{
public ObjectId Id { get; set; }
public String username { get; set; }
public String email { get; set; }
public String status { get; set; }
public IEnumerable<string> roles { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
现在我想在数据库中插入一个新成员:
try
{
memberObj.username = username;
memberObj.email = email;
memberObj.status = "active";
// memberObj.Id = new ObjectId().ToString();
this.membershipcollection.Insert(memberObj, SafeMode.True);
return true;
}
catch(Exception ex)
{
return false;
}
Run Code Online (Sandbox Code Playgroud)
我希望insert能够创建一个唯一的_id(Id),但这并没有发生.当我查看_id字段时插入,我得到"0000000 ...."
为了让Mongo在插入时生成自己的_id,我需要做什么?
And*_*ich 11
只需使用[BsonId]属性标记您的Id 属性,生成的id值就会出现!
public class MemberCanonical : IMemberCanonical
{
[BsonId]
public ObjectId Id { get; set; }
Run Code Online (Sandbox Code Playgroud)
this.membershipcollection.Insert(memberObj, SafeMode.True);
var idYouLookingFor = memberObj.Id;
Run Code Online (Sandbox Code Playgroud)
或者@Kobi建议的另一种方式:"使用_id字段名称代替Id"也应该有效.