0

(b) のリストを継承するクラス (a) があります。

public class a : List<b>
{

}

このクラスのオブジェクトを Mongo に保存しようとすると、エラーが発生します。

Serializer EnumerableSerializer<b> は、DocumentSerializationOptions ではなく、ArraySerializationOptions 型のシリアル化オプションを予期していました。

このようなものに出くわしたことがありますか?誰かが光を当てることができれば、それは素晴らしいことです. これについては、ドキュメントやオンラインであまり見つけることができません。

4

1 に答える 1

1

MongoDB に保存される最上位のドキュメントはリストにすることはできません。クラスでなければなりません。Id フィールドも必要です。したがって、次のようなことができます。

public class C
{
    public ObjectId Id { get; set; }
    public A List { get; set; }
}

public class A : List<B>
{
}

タイプ A のリストをドキュメント内にカプセル化した場所 (この場合はタイプ C)。

ただし、タイプ A のクラスを保持する場合は注意してください。クラス A にカスタム プロパティを追加する場合は、カスタム シリアライザーを記述して、追加したカスタム値がリスト値と共に適​​切にシリアル化されるようにする必要があります。見る:

https://jira.mongodb.org/browse/CSHARP-460

于 2013-03-01T15:45:55.667 に答える