存储过程与linq,转换问题 [英] Store procedure with linq, conversion problem

查看:80
本文介绍了存储过程与linq,转换问题的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在使用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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆