簡體   English   中英

復雜的插入式存儲過程不適合EF?

[英]Complex Insert Stored Proc unsuitable for EF?

我正在嘗試在現有數據庫之上構建新的應用程序。
通過單獨的系統檢索用戶憑證,並將GUID返回給標識用戶的客戶端應用程序,但是此數據庫使用bigInt進行用戶標識,以解決數據庫中的每個SP使用映射功能來發現本地UserIdentity基於傳遞給SP的GUID(userID)。
我想使用EF(.Net4.0),但看不到將GUID傳遞到SP中以允許DB映射功能確定本地UserIdentity的方法。
映射SP以返回集可以正常工作,可以使用GUID,導出本地UserIdentity並返回記錄“脈沖”。 更新和刪除是可以的,因為它們可以使用實體自己的ID值。

我猜我真正的問題是“如果SP映射到的實體不包含具有該值的屬性,是否可以將值發送到存儲過程?”

這是一個典型的表(EF實體具有相同的屬性),它是對應的插入SP。

CREATE TABLE [dbo].[Pulse](
    [Id] [bigint] IDENTITY(1,1) NOT NULL,
    [UserIdentity] [bigint] NOT NULL,
    [Recorded] [datetime] NOT NULL,
    [Value] [int] NOT NULL,

插入SP看起來像這樣

    ALTER PROCEDURE [dbo].[Pulse_Insert] @userId uniqueIdentifier, @recorded datetime, @pulse int AS
BEGIN
SET NOCOUNT ON;
        declare @userIdentity bigint
        select @userIdentity = dbo.GUIDUserMapping(@userId)
        insert into dbo.Pulse (UserIdentity, recorded, value)
        values(@userIdentity,@recorded,@pulse)
        END

這並不是“不適合EF”,但是如果您將proc用於一個操作(INSERT / UPDATE / DELETE / SELECT),則EF希望您將proc用於另一個操作。

在這里使用INSTEAD OF觸發器會更容易嗎? 然后,EF完全不需要了解它。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM