存储过程与linq,转换问题 [英] Store procedure with linq, conversion problem
问题描述
我正在使用linq和商店程序工作3层架构:
我成功插入并更新并删除记录,
但是当从表中划分记录然后有一个错误与铸造类型相关:
我在 BLL使用了以下代码:
I Am Working 3 tier Architecture with linq and store procedure:
I insert and update And Delete Record Successfully,
But When Secting Record From table Then there is an error releted to type casting:
I have used following code at BLL:
public List<tbl_admin_category> GetCategoryDetails(int id)
{
var v = li.SP_Category_Get(id);
return ((List<tbl_admin_category>)(v));
}
和aspx.cs页面:
And At aspx.cs page:
var v1 = obj.GetCategoryDetails(0);
gd_cat.DataSource = v1;
gd_cat.DataBind();
和程序是:
And Procedure Is:
ALTER PROCEDURE [dbo].[SP_Category_Get]
(
@id int=0
)
As
SET NOCOUNT ON
if(@id=0)
Begin
Select * From tbl_admin_category
End
else
Begin
Select * From tbl_admin_category
where
id= @id
End
SET NOCOUNT OFF
错误消息IS:
无法将类型''SingleResult`1 [SP_Category_GetResult]''的对象转换为' 'System.Collections.Generic.List`1 [tbl_admin_category]''。
如果我不使用商店程序:
并在BLL中使用简单方法然后它工作正常:
喜欢:
ERROR Msg IS:
Unable to cast object of type ''SingleResult`1[SP_Category_GetResult]'' to type ''System.Collections.Generic.List`1[tbl_admin_category]''.
And If I not Use Store Procedure:
And Use Simple Method In BLL Then It Work Fine:
Like:
public IEnumerable<tbl_admin_category> GetCategoryDetails(int id)
{
var users = from user in li.tbl_admin_categories
select user;
return users.ToList();
}
推荐答案
使用可以获得这样的数据。
Use can get you data like this.
var v = li.SP_Category_Get(id);
return (from c in v
select new Class1() {
Property1 = c.value1,
Property2 = c.value2
}
).ToList();
这篇关于存储过程与linq,转换问题的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!