tôi đã tạo ra một đối tượng đơn giản với getter và setter:chèn không tạo 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; }
}
Bây giờ tôi muốn chèn một thành viên mới vào cơ sở dữ liệu với:
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;
}
Tôi mong chờ chèn để tạo ra một _id độc đáo (Id), nhưng điều đó không xảy ra. Khi chèn khi tôi xem trường _id, tôi nhận được "0000000 ...."
Tôi cần làm gì để Mongo tự tạo _id khi chèn?
Thỉnh thoảng tôi muốn trả lời các câu hỏi trong các chủ đề mà tôi không biết. Đây là những gì tôi phát hiện ra: Bạn có thể tự tạo các id bằng cách sử dụng 'ObjectId.GenerateNewId()' - Bạn có thể thực hiện nó trong hàm tạo của 'MemberCanonical', hoặc kiểm tra Id trong khi chèn vào' ObjectId.Empty'. Tiếp theo, nó là * có thể * nó nên được gọi là '_id', tôi không hoàn toàn chắc chắn về điều đó. Tôi cũng cố gắng sử dụng 'ObjectId?' Và đặt giá trị của nó thành 'null', nhưng đó là một phỏng đoán hoang dã. – Kobi
Tự động tạo Id khi loại Id là ObjectId. đó là như mong đợi. Nếu Id không phải là trình điều khiển ObjectId sẽ không biết cách tạo Id đó và làm cho nó độc đáo. Do đó, việc này phải được thực hiện thủ công. –
Có ai có một giải pháp không yêu cầu gây ô nhiễm mô hình miền với các mối quan tâm dai dẳng như sự phụ thuộc vào các kiểu MongoDB không? – Kurt