输入参数' MongoDB.Bson.ObjectId'违反了类型参数的限制' TTarget'

时间:2017-02-25 23:53:12

标签: c# .net mongodb mongodb-.net-driver

我正在尝试使用MongoDB构建MVC网站。我是MongoDB的新手。当我尝试将新数据插入集合时,它会抛出错误

  

输入参数' MongoDB.Bson.ObjectId'违反了类型参数' TTarget'。

的约束

我的插入代码如下...

center

我的IEntity界面如下所示

public void Add<T>(T item) where T : class, new()
{
    _db.GetCollection<T>().Save(item);
}

我的实体类如下

public interface IEntity
{
    [BsonId]
    ObjectId Id { get; set; }
    DateTime CreatedDate { get; set; }
    DateTime LastModifiedDate { get; set; }
    int UserId { get; set; }
    bool IsActive { get; set; }
    bool IsDelete { get; set; }
}

这是调用插入的代码...

public class Entity : IEntity
{
    [BsonId]
    public ObjectId Id { get; set; }

    public DateTime CreatedDate { get; set; }

    public DateTime LastModifiedDate { get; set; }

    public int UserId { get; set; }

    public bool IsActive { get; set; }

    public bool IsDelete { get; set; }
}

为什么会出现违反约束的错误。我不懂。请帮忙......

1 个答案:

答案 0 :(得分:2)

如果您插入新项目,则不应致电Save,您应致电InsertOne

public void Add<T>(T item) where T : class, new()
{
    _db.GetCollection<T>().InsertOne(item);
}