我想在實體框架中做一個簡單的(或不是)數據訪問控制。我看到它在EF中不那麼容易支持,因爲EF實際上沒有很好的模式和視圖支持。實體框架中的數據訪問控制
我想有條件地訪問一些實體的列。
在Sql Server中,使用模式很容易實現。例如,我可以在他的架構中爲用戶創建一個視圖,其中有些列是錯過的。其他用戶(例如admin)將在其模式中包含所有列。它們都可以具有相同的視圖名稱,例如:getUsers,但是隻有將從dbo schema(dbo.getUsers)執行它的管理員將擁有所有列,而其他人只有一部分。當然,在Sql Server中,也可以通過存儲過程來實現。
如何在EF中實現數據訪問功能?
我要讓我將能夠使用這樣的功能:當然
-- function checks user role and returns appropirate columns/entity
var result = getAppropirateDataForThisUser("getUsers", user);
它只是爲了說明問題。用法可以完全不同。
當我有很多實體/視圖/過程時,可能很難處理。沒有更簡單的解決方案嗎?爲每個對象實現方法可能是個壞主意。我寧願過濾存儲過程或視圖在DB網站上的列... – nosbor 2012-04-20 16:47:23
在這種情況下..是的。我認爲你需要在數據庫方面。 – 2012-04-20 16:50:00
好的,但我如何在EF中處理它?我試圖通過db.ExecuteStoreQuery(@「execute」+ schema +「。」+ procName)來完成它。但是當我從模式中執行過程時,我收到較少的列,然後EF拋出異常,沒有足夠的列來執行此操作... –
nosbor
2012-04-20 17:05:57