【发布时间】:2013-02-04 21:20:19
【问题描述】:
我们的架构设置为通过存储过程完成每个数据库更新、插入和删除。随着每次更新、插入或删除,我们传入一个 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
我如何使用存储过程对成员实体执行插入操作,并传入一个附加参数,因为此 ActivityId 不是实体或任何表的一部分?
【问题讨论】:
-
简短回答:不可能。 (插入和编辑)存储过程的签名应与实体属性匹配。也许您可以将
ActivityId添加到您的实体并填写上下文的SavingChanges事件? (有点像:stackoverflow.com/a/14667122/861716)。
标签: entity-framework entity-framework-5