Entity framework 使用EF将复杂对象列表传递给存储过程
目前,我的存储过程接受1个int参数,但我还需要将“表a”中的记录列表传递给存储过程,因此我创建了一个与“表a”的列匹配的类型,并将其添加到SP的参数中Entity framework 使用EF将复杂对象列表传递给存储过程,entity-framework,stored-procedures,parameters,Entity Framework,Stored Procedures,Parameters,目前,我的存储过程接受1个int参数,但我还需要将“表a”中的记录列表传递给存储过程,因此我创建了一个与“表a”的列匹配的类型,并将其添加到SP的参数中 但是,当我使用EF将SP导入到项目中时,唯一的参数是整数 我的类型: CREATE TYPE TableA_Type AS TABLE ( [Id] [int] NOT NULL, [colA] [int] NOT NULL, [colB] [int] NOT NULL, other columns...
但是,当我使用EF将SP导入到项目中时,唯一的参数是整数
我的类型:
CREATE TYPE TableA_Type AS TABLE (
[Id] [int] NOT NULL,
[colA] [int] NOT NULL,
[colB] [int] NOT NULL,
other columns...
);
我的表A:
CREATE TABLE TableA (
[Id] [int] NOT NULL,
[colA] [int] NOT NULL,
[colB] [int] NOT NULL,
other columns...
);
我的SP:
CREATE PROCEDURE MySP
@MyInt INT,
@Values TableA_Type READONLY
AS
BEGIN
--DO STUFF
END
SP在上下文中自动生成导入:
public virtual int MySP(Nullable<int> myInt)
{
var myIntParameter = myInt.HasValue ?
new ObjectParameter("MyInt", myInt) :
new ObjectParameter("MyInt", typeof(int));
return ((IObjectContextAdapter)this).ObjectContext.ExecuteFunction("MySP", myIntParameter);
}
公共虚拟整数MySP(可空myInt)
{
var myIntParameter=myInt.HasValue?
新对象参数(“MyInt”,MyInt):
新的ObjectParameter(“MyInt”,typeof(int));
返回((IObjectContextAdapter)this.ObjectContext.ExecuteFunction(“MySP”,myIntParameter);
}