2013-07-18 128 views
1

我有一個MongoDB輔助類,它接受通用類型來簡化CRUD操作。但是,我在計算更新方法時遇到了一些麻煩。從我讀過的所有內容看來,我需要單獨更新每個字段。如何使用MongoDB C#驅動程序更新泛型類型

例如:Update.Set("Field", "New Value").Set("Other field", "Other value");

但想什麼,我做的是這樣的:

void Update(T entity) 
{ 
    collection.Update<T>(entity); 
} 

這可能嗎?或者我是否需要在每個實體的特定類中包含更新方法?

回答

2

假設你要更新(替換)整個對象,這樣做:

void Update(T entity) 
{ 
    collection.Save<T>(entity); 
} 

如果_id字段設置它會檢測並保存正確的項目。

如果你的對象包括主鍵屬性(應該),您可以用屬性修飾它給蒙戈暗示

[BsonId()] 

如果你正在尋找只更新某些字段,那麼你總是使用反射循環遍歷類型的屬性並將它們添加到Update的設置器中。