具有未映射列的实体框架5更新过程

时间:2013-02-04 21:20:20

标签: entity-framework entity-framework-5

我们的架构已设置好,因此每个数据库的更新,插入和删除都是通过存储过程完成的。随着每次更新,插入或删除,我们传入一个ActionId参数,该参数对于用户会话是唯一的,并存储在日志表中。表定义是:

CREATE TABLE Member(
    MemberId int primary key identity not null,  
    MemberName nvarchar(100) not null)

使用插入存储过程定义:

ALTER procedure [dbo].[proc_MemberInsert]  
(  
    @MemberName nvarchar(100),   
    @ActionId int
)  
AS 
BEGIN
INSERT
INTO
    dbo.[Member] (  
    MemberName)   
values (  
    @MemberName)  

INSERT
INTO
    dbo.[Activity] (  
    TableName,
    ActivityId)   
values (  
    'Member',
    @ActivityId)  
END

如何使用存储过程对成员实体执行Insert,并传入一个附加参数,因为此ActivityId不是实体或任何表的一部分?

1 个答案:

答案 0 :(得分:0)

格特是正确的,这是不容易的。 Oracle确实提供了记录整个用户会话的活动ID的能力,并且我们以用户身份连接到Oracle。因此,我们最终将ActivityId添加到所有选择过程,并将ActivityId添加到会话中(因为我们在执行任何编辑之前总是有一个select)。在这种情况下,ActivityId值存在,我们将其添加到日志中,一切都运行良好。