我在一个存储过程中查询,该存储过程使用一些动态SQL调用某些链接服务器.我知道EF不喜欢这样,所以我特意列出了所有要返回的列.然而,它仍然不喜欢这样.我在这做错了什么?我只是希望EF能够检测从存储过程返回的列,以便我可以创建我需要的类.
请参阅以下代码,它构成了我的存储过程的最后几行:
SELECT
#TempMain.ID,
#TempMain.Class_Data,
#TempMain.Web_Store_Class1,
#TempMain.Web_Store_Class2,
#TempMain.Web_Store_Status,
#TempMain.Cur_1pc_Cat51_Price,
#TempMain.Cur_1pc_Cat52_Price,
#TempMain.Cur_1pc_Cat61_Price,
#TempMain.Cur_1pc_Cat62_Price,
#TempMain.Cur_1pc_Cat63_Price,
#TempMain.Flat_Length,
#TempMain.Flat_Width,
#TempMain.Item_Height,
#TempMain.Item_Weight,
#TempMain.Um,
#TempMain.Lead_Time_Code,
#TempMain.Wp_Image_Nme,
#TempMain.Wp_Mod_Dte,
#TempMain.Catalog_Price_Chg_Dt,
#TempMain.Description,
#TempMain.Supersede_Ctl,
#TempMain.Supersede_Pn,
TempDesc.Cust_Desc,
TempMfgr.Mfgr_Item_Nbr,
TempMfgr.Mfgr_Name,
TempMfgr.Vendor_ID
FROM
#TempMain
LEFT JOIN TempDesc ON #TempMain.ID = TempDesc.ID
LEFT JOIN TempMfgr ON #TempMain.ID = TempMfgr.ID
Run Code Online (Sandbox Code Playgroud) 我正在使用实体框架(EF)从存储过程创建复杂类型.最近,存储过程发生了变化(添加了更多的返回值.我想更新映射到此存储过程的复杂类型.这是可能的,如果是这样,怎么样?我每次都删除我的函数导入和复杂类型存储过程更改,这很可能不是最好的方法.
我试图在Entity Framework中使用一个不返回任何内容的存储过程.
我做了以下事情:
添加了一个功能(右键单击存储过程 - >添加 - >功能导入 - >复杂类型 - >获取列信息 - >创建新复杂类型)
我的功能名称:summarySP_Result
.构建项目后,实体类不会在Generated_code
(BusinessAccount.web.g.cs
)中生成
但是表和视图的实体类都是创建的,但也不是存储过程.
任何人都可以提出为什么它不是生成实体类的想法BusinessAccount.web.g.cs
?
更新:
让我确认ReturnDataFromTemTable_result
你XXXXXX.web.g.cs
班级中创建的实体课程.
喜欢 :
[DataContract(Namespace="http://schemas.datacontract.org/2004/07/BizFramework.Web.Model")]
public sealed partial class ReturnDataFromTemTable_Result : Entity
{
-------------------
}
Run Code Online (Sandbox Code Playgroud) select * from @t
真的吗?有人告诉我它的谎言.
create procedure WorkIt
as
set nocount on
create table #pivot
(
Name varchar(30),
Value decimal,
Grade varchar(2)
)
insert into #pivot
select 'Repeating Pct', 1, 'K'
union all
select 'Repeating Pct', 2, '1'
union all
select 'Repeating Pct', 3, '2'
union all
select 'Repeating Pct', 4, '3'
union all
select 'Repeating Pct', 5, '4'
union all
select 'Repeating Pct', 6, '5'
union all
select 'Repeating Pct', 7, '6'
union all
select 'Repeating …
Run Code Online (Sandbox Code Playgroud) 我试图从存储过程返回标量值.我实际上想要返回一个新创建的记录的ID,但我已经将我的问题简化为一个存储过程,该存储过程需要int
并尝试返回相同的内容int
.这总是返回-1.非常感谢您的帮助.
Web API控制器调用
var idtest = dbconn.my_return_int(123);
Run Code Online (Sandbox Code Playgroud)
存储过程:
ALTER PROCEDURE [dbo].[my_return_int]
@ID int
AS
BEGIN
SET NOCOUNT ON;
DECLARE @return as int
SET @return = -999
RETURN @return
END
Run Code Online (Sandbox Code Playgroud)
该Context
生成的存储过程调用
public virtual int my_return_int(Nullable<int> iD)
{
var iDParameter = iD.HasValue ?
new ObjectParameter("ID", iD) :
new ObjectParameter("ID", typeof(int));
return (IObjectContextAdapter)this).ObjectContext.ExecuteFunction("my_return_int", iDParameter);
}
Run Code Online (Sandbox Code Playgroud)