【发布时间】:2009-06-13 11:09:42
【问题描述】:
如何在 ADO.NET Entity Framework 中调用存储过程而不出错?如果我使用下面的代码,我会得到一个错误:
adminNameContext.AddItemCategory(12, "ggf", DateTime.Now);
错误:
数据读取器与指定的“NetTanitimTestModel.Categories”不兼容。类型的成员“ID”在数据读取器中没有同名的对应列。
ALTER procedure [dbo].[sp_AddItemCategory]
(
@item int,
@category nvarchar(50),
@date smalldatetime
)
as
begin
if(@item=-1)
begin
insert into Categories(PARENTID,Category,Date) values(null,@category,@date)
end
else
begin
insert into Categories(PARENTID,Category,Date) values(@item,@category,@date)
end
end
我有包含 3 列的类别表:PARENTID,Category,Date
【问题讨论】:
-
错误说明了一切:您试图引用结果集中不存在的列 ('ID')...
-
向我们展示存储过程的样子(T-SQL 代码),并向我们展示它运行的表(表结构)
-
marc_s;我刷新了我的问题。请再看一遍:)
-
我会强烈建议不在开头使用“sp_”调用您的存储过程;该前缀保留供 Microsoft 使用ONLY。我不认为这是这里的问题,但作为最佳实践 - 永远不要调用您存储的过程 sp_(something) - 使用 proc_(something) 或其他任何东西。
标签: c# .net linq entity-framework linq-to-entities