社区首页 >问答首页 >使用存储过程和变量列的Linq to SQL?

使用存储过程和变量列的Linq to SQL?
EN

Stack Overflow用户
提问于 2011-05-26 03:02:48
回答 1查看 197关注 0票数 2

我有一个存储过程,它至少返回4列,然后返回n列(它是Pivot的结果)。

我不能创建一个快速类型来声明要与Linqtosql一起使用的结果集形状,因为我实际上并不知道该形状是什么。

由于Linqtosql是我的DAL,如果可能的话,我想坚持使用它--我不想回到无类型的DataSets,对吧?

如何让LinqToSql返回具有可变数量的属性/列的存储过程结果?

谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-05-26 03:15:31

LINQ- to -SQL需要将数据库对象映射到具体类型。所以,简而言之,你不能这样做。

有一些变通方法。我希望最好的结果是将n列映射到每个数据对象中的一个集合。

如果您可以将数据库模式更改为使用父子视图模式,而不是单个动态存储过程,则LINQ- to -SQL将能够映射这一点。例如,您的前4列位于“父”视图中,而现有proc中的每个后续列都将成为需要引用父视图的“子”视图中的一行。

另一种替代方法--更简单但更脏--是以CSV格式(或其他分隔符)返回包含当前n列的单个列。然后将该单个值解析为一个集合。丑陋但简单。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6133255

复制
相关文章
一步一步学Linq to sql(五):存储过程
首先在查询分析器运行下面的代码来创建一个存储过程sp_singleresultset。然后打开IDE的服务器资源管理器,我们从存储过程中找到刚才创建的存储过程,然后拖动到设计视图。在方法面板中可以看到已经创建了一个sp_singleresultset的方法,如下图:
aehyok
2018/09/11
4350
一步一步学Linq to sql(五):存储过程
Sql Server 存储过程使用技巧
Copy下面的代码,然后新建查询,就可以写sql语句,执行完后,一个你自己的存储过程就建立好了!
跟着阿笨一起玩NET
2018/09/19
1.2K0
使用SQL语句创建存储过程
优点: 1、方便修改。   因为存储过程是存储在数据库中的,如果需要涉及到修改SQL语句,那么数据库专业人员只需要去修改数据库中的存储过程就可以,对程序毫无影响,如果用SQL语句的话,SQL语句是写在程序中的,如果涉及到修改SQL语句,那么就需要去修改源程序。
初阶牛
2023/10/14
4100
使用SQL语句创建存储过程
sqlserver使用存储过程跟踪SQL
USE [master] GO /****** Object: StoredProcedure [dbo].[sp_perfworkload_trace_start] Script Date: 2017/7/6 19:48:52 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO
易墨
2018/09/14
1.7K0
sql 存储过程
Transact-SQL中的存储过程,非常类似于Java语言中的方法,它可以重复调用。当存储过程执行一次后,可以将语句缓存中,这样下次执行的时候直接使用缓存中的语句。这样就可以提高存储过程的性能。
格姗知识圈
2019/07/19
1.4K0
SQL存储过程
存储过程 什么是存储过程 创建调用与删除 变量声明 参数定义 流程语句 查看存储过程 什么是存储过程 创建一组为了完成特定功能的SQL语句集 之后需要用到时就可以直接用存储过程名使用 创建的存储过程保存在数据库的数据字典中 创建调用与删除 /* 创建 */ DELIMITER $$ CREATE PROCEDURE 名称() BEGIN 语句 END $$ DELIMITER ; /* 调用 */ call 名称(); /* 删除 */ drop procedure 名称; DELIMITER语句将标
木瓜煲鸡脚
2019/08/06
1.2K0
SQL存储过程
什么是存储过程? 存储过程可以说是一个记录集吧,它是由一些T-SQL语句组成的代码块,这些T-SQL语句代码像一个方法一样实现一些功能(对单表或多表的增删改查),然后再给这个代码块取一个名字,在用到这个功能的时候调用他就行了。
小语雀网
2021/09/08
8950
sql存储过程简单例题_sql存储过程实例详解
2、创建存储过程P2,查询学生的学号、姓名、课程名、成绩,将学生所在系作为输入参数
全栈程序员站长
2022/09/27
9030
mysql存储过程和存储函数的使用
create procedure name(IN | OUT |INOUT str STRING) #定义存储过程名字
93年的老男孩
2019/12/18
2.2K0
SQL Server 存储过程_mysql存储过程教程
**相对于视图的优势(为什么使用存储过程):** Sql Server中视图通过简单的Select查询来解决多次复杂的查询,但是视图不能提供业务逻辑的功能,而存储过程可以。 **什么是存储过程:**
全栈程序员站长
2022/11/14
5.5K0
定义和使用存储过程
本章介绍如何在IntersystemsIRIS®数据平台上定义和使用Intersystems SQL中的存储过程。它讨论了以下内容:
用户7741497
2022/06/07
1K0
sql server存储过程
存储过程、函数区别 函数可以在sql语句中调用,存储过程不行 函数只能返回一个返回值,存储过程可以返回多个 存储过程 无参数的存储过程 create proc usp_helloworld as begin print 'Hello World' end 有参数的存储过程 create proc usp_book @name nvarchar(50), @author nvarchar(50) as begin select * from book where name=@name and
sofu456
2020/04/30
1.2K0
SQL Server 存储过程
Transact-SQL中的存储过程,非常类似于Java语言中的方法,它可以重复调用。当存储过程执行一次后,可以将语句缓存中,这样下次执行的时候直接使用缓存中的语句。这样就可以提高存储过程的性能。 Ø 存储过程的概念     存储过程Procedure是一组为了完成特定功能的SQL语句集合,经编译后存储在数据库中,用户通过指定存储过程的名称并给出参数来执行。     存储过程中可以包含逻辑控制语句和数据操纵语句,它可以接受参数、输出参数、返回单个或多个结果集以及返回值。     由于存储过程在创建时即在数据
牛嗷嗷
2018/03/30
1.8K0
SQL Server 存储过程
Transact-SQL中的存储过程,非常类似于Java语言中的方法,它可以重复调用。当存储过程执行一次后,可以将语句缓存中,这样下次执行的时候直接使用缓存中的语句。这样就可以提高存储过程的性能。
冰封一夏
2019/09/11
1.4K0
SQL Server 存储过程
Transact-SQL中的存储过程,非常类似于Java语言中的方法,它可以重复调用。当存储过程执行一次后,可以将语句缓存中,这样下次执行的时候直接使用缓存中的语句。这样就可以提高存储过程的性能。 Ø 存储过程的概念     存储过程Procedure是一组为了完成特定功能的SQL语句集合,经编译后存储在数据库中,用户通过指定存储过程的名称并给出参数来执行。     存储过程中可以包含逻辑控制语句和数据操纵语句,它可以接受参数、输出参数、返回单个或多个结果集以及返回值。     由于存储过程在创建时即在数据
hbbliyong
2018/03/05
1.8K0
SQL 存储过程分页
CREATE PROC p_Team_GetTemaList @pageindex INT , @pagesize INT , @keywords VARCHAR(200) , --模糊查询 名称 标签 @citycode VARCHAR(100) , @verifyStatus INT =0,-- -1所有的 0 没有通过 1 审核通过 @orderby INT, @TotalCount INT OUTPUT AS BEGIN
纯粹是糖
2018/03/14
1.5K0
使用Linq to Sql 创建数据库和表
1.建一个类Article 1 using System.Data.Linq.Mapping; 2 3 4 5 [Table(Name = "Article")] 6 public class Article 7 { 8 [Column(IsPrimaryKey=true)] 9 public int id 10 { 11 get; 12 set; 13
lpxxn
2018/01/31
1.7K0
MS SQL 的存储过程练习
/*带参存储过程 if(OBJECT_ID('proc_find_stu', 'p') is not null)    drop proc proc_find_stu go create proc proc_find_stu(@startId int, @endId int) as    select * from student where stu_id between @startId and @endId go*/ /*调用存储过程 exec proc_find_stu 7, 9*/ --带通配符参数存储过程 /*if(OBJECT_ID('proc_findStudentByName','P') is not null)    drop proc proc_findStudentByName go create proc proc_findStudentByName(@name varchar(20) = '%j%', @nextName varchar(20) = '%') as    select * from student where stu_name like @name and stu_name like @nextName; go*/ --执行存储过程 /*exec proc_findStudentByName; exec proc_findStudentByName '%o%','t%';*/ --带输出参数存储过程 /*if(OBJECT_ID('proc_getStudentRecord','P') is not null)    drop proc proc_getStudentRecord go create proc proc_getStudentRecord(    @id int,--默认输入参数    @name varchar(20) out, -- 输出参数    @age varchar(20) output -- 输入输出参数 ) as    select @name = stu_name, @age = stu_age from student where stu_id = @id and stu_age = @age; go*/ -- /*declare @id int,         @name varchar(20), @temp varchar(20); set @id = 9; set @temp = 40; exec proc_getStudentRecord @id,@name out,@temp output; select @name, @temp print @name + '#' + @temp;*/ --不缓存存储过程 --WITH RECOMPILE 不缓存 /*if (OBJECT_ID('proc_temp','P') is not null)    drop proc proc_temp go create proc proc_temp with recompile as     select * from student; go*/ --exec proc_temp; --加密WITH ENCRYPTION /*if (OBJECT_ID('proc_temp_encryption','P')is not null)    drop proc proc_temp_ecryption go create proc proc_temp_encryption with encryption as    select * from student; go*/ /*exec proc_temp_encryption; exec sp_helptext 'proc_temp'; exec sp_helptext 'proc_temp_encryption';*/ --带游标参数存储过程 /*if(OBJECT_ID('proc_cursor','P') is not null)    drop proc proc_cursor go create proc proc_cursor    @cur cursor varying output as    set @cur = cursor forward_only static for    select stu_id, stu_name, stu_age from student;    open @cur; go*/ --调用 /*declare @exec_cur cursor; declare @id int,         @name varchar(20), @age int; exec proc_curs
静谧的小码农
2019/01/11
9590
sql常用的系统存储过程
常用的系统存储过程 sp_databases 列出服务上的所有数据库 sp_helpdb 报告有关指定数据库或所有数据库的信息 sp_renamedb 更改数据库的名称 sp_tables 返回当前环境下可查询的对象的列表 sp_columns 返回某个表列的信息 sp_help 返回某个表的所有信息 sp_helpconstraint 查看某个表的约束 sp_helpindex 查看某个表的索引 sp_stored_procedures 列出当前环境中的所有存储过程 sp_passwo
lpxxn
2018/01/31
1K0
行存储和列存储的优缺点
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/159308.html原文链接:https://javaforall.cn
全栈程序员站长
2022/09/14
1.7K0

相似问题

存储过程和Linq to sql

11

使用LINQ to SQL读取存储过程

37

SQL Server存储过程和Linq-to-SQL

10

使用Linq to Sql的Group By存储过程

11

LINQ to SQL调用使用动态SQL的存储过程

23
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文