我已創建了getter和setter方法的簡單對象:插入不創建ID?
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; }
}
現在我要到一個新的成員插入到與數據庫:
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;
}
我希望插入創建一個獨特的_id( Id),但沒有發生。在插入時,當我查看_id字段時,我會得到「0000000 ....」
我需要做什麼才能讓Mongo在插入時生成它自己的_id?
有時我喜歡回答我一無所知的科目中的問題。下面是我發現的:您可以使用ObjectId.GenerateNewId()自己生成id。您可以在MemberCanonical的構造函數中執行此操作,也可以在插入ObjectId.Empty時檢查Id。接下來,它是*可能*它應該被稱爲'_id',我對此不太確定。我也嘗試使用ObjectId?並將它的值設置爲null,但這是一個瘋狂的猜測。 – Kobi
它在Id類型爲ObjectId時自動創建Id。這是預期的。如果Id不是ObjectId驅動程序將不知道如何創建該Id並使其唯一。因此,必須手動完成。 –
有沒有人有一個解決方案,不需要通過持久性問題(如對MongoDB類型的依賴)來污染域模型? – Kurt