1
我曾經在一個通用的基礎類下面的方法:EF4.3知道上下文已經成功地插入實體
public virtual void Insert(TEntity entity) {
dbSet.Add(entity);
}
我的服務層使用Insert
方法來添加新記錄。現在我想能夠返回一個布爾,以確保它正確插入。像下面這樣:
public virtual int Count {
get {
return dbSet.Count();
}
}
public virtual bool Insert(TEntity entity) {
int count = this.Count;
dbSet.Add(entity);
return this.Count == count + 1;
}
有沒有更優雅的方式呢?我是否完全錯誤地接近它?我可以爲Delete方法做類似的事情,但是如何檢查Update
是否已成功執行?
是的,這是正確的,如果存在數據庫錯誤和添加將拋出一個錯誤,如果存在上下文錯誤,如果您調用add然後SaveChanges沒有錯誤,那麼它已成功提交,SaveChanges將拋出異常。 – 2012-04-22 06:04:17
好的,謝謝你澄清,我知道當我調用'SaveChanges()'時,實際的SQL只被發送到數據庫。捕獲潛在錯誤的最好方法是將調用'Insert'的代碼包裝到try catch塊中? – Mekswoll 2012-04-22 14:51:50
@pEkvo - .net中的幾乎任何東西都可以在正確的情況下拋出異常。你不能在任何事物上放一個try/catch塊。添加拋出異常與WriteLine拋出異常的可能性相同(實際上WriteLine可能更可能)。老實說,這是你不需要擔心的事情。 – 2012-04-22 18:28:31