众所周知,在向MongoDB的集合中添加一条记录时,系统会自动增长一个字段名为"_id",类型为ObjectId的字段,其值为24位字符串,能够使用此值做为记录的惟一标识。spa
项目中须要调用一个已存在的MongoDB,发现其每一个collections都有一个字段"Id",而其值就是自动生成的那个"_id",这样就存在两个类型相同值也相同的字段,真是画蛇添足。
code
List<mgdata> items = colMsg.FindAllAs<mgdata>().SetLimit(
10).ToList<mgdata>();
当用MongoDB Driver获取数据时,提示如下异常blog
MongoDB.Bson.BsonSerializationException: Member 'Id' of class 'yourproject' cannot use element name '_id' because it is already being used by member '_id'.
修改model以下后,可正常读取。(经过继承,让"_id","Id"两个属性不要同时平行出现)继承
public
class bsonItem
{
public BsonObjectId _id {
get;
set; }
}
public
class mgdata:bsonItem
{
public BsonObjectId Id {
get;
set; }
public
string name {
get;
set; }
public DateTime date {
get;
set; } }