2016-04-02 68 views
1

我在保存mongo db更新数据期间出现此错误。 这是错误:mongo db更新数据期间出错

保存只能用于具有Id的文档。

这是我的模型:

public ModelKorisici() { } 



    [BsonId(IdGenerator = typeof(CombGuidGenerator))] // posajvljivaa se greška kod BSON tipa podataka kod ID-a,preuzoteo s dokumentacije drivera 1.5 
    public Guid Id { get; set; } 

    [BsonElement("ime")] 
    public string ime { get; set; } 


    [BsonElement("prezime")] 
    public string prezime { get; set; } 


    [BsonElement("lozinka")] 
    public string lozinka { get; set; } 


    [BsonElement("email")] 
    public string email { get; set; } 

    [BsonElement("kor_ime")] 
    public string kor_ime { get; set; } 

    [BsonElement("uloga")] 
    public string uloga { get; set; } 
} 

我的更新代码是在这里:

public void urediKorisnika(ModelKorisici korisnik) 
    { 
     MongoCollection<ModelKorisici> kljenti = GetTasksCollection(); 
     kljenti.Save(kljenti); 
    } 

谁能帮助?

回答

0

我不知道你有什么做的,但你的错误是在下面的代码块

public void urediKorisnika(ModelKorisici korisnik) 
{ 
    MongoCollection<ModelKorisici> kljenti = GetTasksCollection(); 
    kljenti.Save(kljenti); 
} 

这里是你想存储collection本身。我相信GetTasksCollection()从MongoDB返回collection,然后您试图再次将其存储到自身中。看到kljenti.Save(kljenti);

你需要的ModelKorisici创建实例,并将其保存到kljenti

你的代码应该是这个样子:

public void urediKorisnika(ModelKorisici korisnik) 
{ 
    MongoCollection<ModelKorisici> kljenti = GetTasksCollection(); 

    var model = new ModelKorisici(); 
    model.ime = ... 
    ... 

    kljenti.Save(model); 
} 
+0

当我这样做你的代码,我插入与_id一个新的对象,并其他属性为空 –

+0

这很明显。你必须填写你的物业。在我的代码中'''意味着完成其余的初始化。底线是,你不会再犯错误了。 – Saleem