2017-02-25 2 views
1

MongoDB를 사용하여 MVC 웹 사이트를 구축하려고합니다. 나는 MongoDB의 초보자이다. 새 데이터를 컬렉션에 삽입하려고하면 아래 오류가 발생합니다.형식 인수 'MongoDB.Bson.ObjectId'가 매개 변수 'TTarget'형식의 제약 조건을 위반합니다.

형식 인수 'MongoDB.Bson.ObjectId'가 'TTarget'매개 변수의 제약 조건을 위반합니다.

아래와 같이 삽입 내 코드 ...

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

내 IEntity 인터페이스는

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; } 
} 

이 아래 삽입하는 코드입니다 ...

IBusinessArticle businessArticle = new BusinessArticle(); 
businessArticle.Add(new Article { Title = "Test MongoDB", Body = "Body Body Body Body Body Body" }); 

왜 제약 조건 위반에 대해 오류가 발생합니까? 나는 그것을 얻지 않는다. 도와주세요 ...

답변

2

새로운 항목을 삽입 할 경우, 당신은 Save를 호출하지 않아야합니다, 당신은 InsertOne를 호출해야합니다 :

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