那麼,這是防止SQL注入的一種方法,我猜想,但是,讓我們把它留給美國政府,把規則應用到簡單的事情上。
該限制條件基本上要求該網站是隻讀的。據推測,這隻適用於面向公衆的屬性,所以你仍然可以允許直接訪問內部應用程序的數據庫(否則,我不知道你將如何堅持任何事情)。無論如何,Entity Framework可以輕鬆應對。就使用視圖而言,你並不需要做太多特別的事情。如果你在現有的數據庫中使用Code First併爲你的視圖命名,以便它們遵循EF約定(實體名稱的複數形式),那麼你就不必真的做任何特殊的事情。
爲了使EF功能與現有的數據庫,你只需要修改DbContext
子類的構造函數1)顯式引用連接字符串和2)禁用初始化:
public class ApplicationContext : DbContext
{
public ApplicationContext()
: base("ConnectionStringName")
{
Database.SetInitializer<ApplicationContext>(null);
}
// DbSets here
}
如果你的視圖名唐「T線向上與EF約定,那麼你可以明確地說明你的實體應該參考什麼:
[Table("awesomefooview")]
public class Foo
{
...
}
從技術上講,你仍然有實體框架API的方法可以讓寫的,但由於後盾是一個視圖,日如果運行,ese會引發異常。如果你可以做類似於運行存儲過程來進行更改,哪種間接允許寫入訪問,但從技術上講,應用程序本身並未觸及數據庫,那麼你也可以讓Entity Framework使用它們。有關更多信息,請參閱Code First Insert/Update/Delete Stored Procedures(不幸的是,只有EF6和更高版本)。
謝謝克里斯的回覆。要讀取數據,這非常簡單。但是,當我需要保存一些數據時,它會很無聊,因爲看起來我必須爲每個表創建存儲過程......對我來說這沒有意義,哈哈。再次感謝。 – HorseKing 2014-12-02 19:58:42