MongoDB
 sql >> Database >  >> NoSQL >> MongoDB

come gestire il campo _id quando si utilizza POCO con il driver mongodb c#

Quando inserisci un oggetto, se non ha un _id campo quindi il driver ne aggiunge uno e lo imposta su un valore MongoDB ObjectId a 12 byte.

Devi solo aggiungere un Id proprietà al tuo POCO, che verrà deserializzato da _id :

public class Thingy
{
     public ObjectId Id { get; set; }
}

Oppure, se desideri delegare un'altra proprietà per la mappatura su _id quindi puoi decorarlo con il BsonIdAttribute , in questo modo:

[BsonId]
public ObjectId MyKey { get; set; }   

Il _id il campo non deve essere un ObjectId MongoDB , puoi impostarlo su qualsiasi valore di qualsiasi tipo di dati (tranne un array), deve solo essere univoco all'interno della raccolta.