2012-07-16 50 views

回答

0

組連接模式屬性來ModeRead

con.Mode = 1

0

一種更好的方法用於這將是禁止基於所述用戶是否被允許修改的數據或不您的UI元素。您的方法存在的問題是EF API不能用於只讀模式。使用只讀連接時拋出異常時調用SaveChnages

您可以這樣做,以防止EF在只讀連接上更新。

public class MyContext : DbContext 
{ 
    private bool isReadOnly; 
    public MyContext(string conn, bool isReadOnly) 
    :base(conn) 
    { 
     this.isReadOnly = isReadOnly; 
    } 

    public override int SaveChanges() 
    { 
     if (isReadOnly) 
     { 
       return 0; //or throw exception 
     } 

     return base.SaveChanges(); 
    } 
} 

ObjectContext這是有點棘手。您可以取消設置SavingChanges事件中的所有更改。

+0

如何重新生成我的代碼?我每次都必須手動輸入嗎? – l15a 2012-07-25 14:57:06

+0

@ l15a使用「partial」關鍵字將您的上下文類拆分爲多個文件,並將此邏輯移至另一個文件。然後,更新上下文時,更改不會丟失。 – Eranga 2012-07-25 15:09:47

相關問題