我在實體框架內使用SPROCs來處理所有的CRUD方法。由於這是一個多租戶數據庫,因此我們在每個表中都有一個clientID字段。我們的DBA不希望公開該客戶端ID,因此我們將用戶名傳遞給SPROC(用戶名,在成員資格提供者中跟蹤),然後在用戶名內部將用戶名轉換爲客戶端ID。
我遇到的問題是我的實體沒有用戶名屬性。當我爲插入/更新/刪除創建函數導入時,映射正在請求一個用戶名字段(必需,來自我的SPROC),該字段在我的實體中不存在。這裏是我的架構:
帳戶實體
賬戶號碼
AccountDescription
的ClientID
ActiveFlag
RowVersion(併發)
我的存儲過程:
ALTER PROCEDURE [dbo].[GetAccounts]
@Username varchar (60)
AS
/*********************************************
Summary: Get Accounts
2011-01-20 aca initial version
2011-01-27 aca Alias for Description
2011-03-21 aca Implement user security
********************************************/
select P.FERC_ACCOUNT,
P.[DESCRIPTION] as AccountDescription,
P.RowVersion
from dbo.P_ACCOUNTS P
join dbo.v_UserClient U
on U.Username = @Username
and P.CLIENT_ID = U.Client_ID
where P.ActiveFlag = 1;
RETURN 0;
我不確定最好的處理方式是什麼。我只是在我的實體中創建一個用戶名屬性?那意味着我必須對每一個人都這樣做?我如何填充它?等等:)
感謝您的幫助!
Scott
你能通過部分課程添加嗎? – 2011-03-22 02:16:47
我當然知道部分類是什麼(我的域服務被分解爲每個實體集的一個部分類,以適應更新我的模型,然後不必更新將構成我的ds的所有200個方法),但你可以解釋更多我將如何實施,爲什麼? – 2011-03-22 09:33:31
這是一個SL項目嗎?您是否將實體映射到特效或您是否直接調用導出的函數。 – 2011-03-22 16:22:13