2017-02-03 6 views
2

Ich habe alle von diesem meine C# Einheiten geändert:Mongo C# deserialize zu ObjectId String

public ObjectId Id { get; set; } 

dazu:

[BsonRepresentation(BsonType.ObjectId)] 
public string Id { get; set; } 

weil ich brauche Rebus zu verwenden und die Id um zu schicken, aber ObjectId kann nicht serialisiert werden, ohne einen benutzerdefinierten Serializer hinzuzufügen. Und tatsächlich ist String an anderen Stellen bequemer (z. B. Modellbindung in MVC-Controllern).

Wie auch immer, dachte ich, die Änderung ohne Probleme wäre aber jetzt meine ich eine Ausnahme versucht ObjectId bespannen deserialisieren: meine ApplicationUser Klasse eine

IEnumerable<string> Friendships { get; set; } 

enthält eine Liste von Ids von der Freundschaft Einheit hat. Sie wurden als ObjectId erstellt, aber jetzt möchte ich sie als String behandeln ... wie kann ich das jetzt im Code handhaben?

Antwort

0

Nicht Id als ObjectId gesetzt

Set als String mit diesen Attributen

[BsonId(IdGenerator = typeof(StringObjectIdGenerator))] [BsonRepresentation(BsonType.ObjectId)]

public string ID { get; set; }