当前位置: 首页 > wzjs >正文

做网站 就上微赞网seo上海优化

做网站 就上微赞网,seo上海优化,宁晋网站建设,湘潭网站建设 就找磐石网络大家都知道,对于SQL Server IN是有限制条件的,如果IN里面的内容过多,在执行的时候会被自动截断,因而导致查询到的结果不是实际需要的结果。 select * from Payments where Id in (1,2,3,4,...) 为了解决上面的限制,可以…

大家都知道,对于SQL Server IN是有限制条件的,如果IN里面的内容过多,在执行的时候会被自动截断,因而导致查询到的结果不是实际需要的结果。

select * from Payments where Id in (1,2,3,4,...)

为了解决上面的限制,可以改为利用用户自定义数据类型解决。

具体内容如下:

1. Create User-Defined Data Types

CREATE TYPE [dbo].[IdTable] AS TABLE([Id] [int] NOT NULL
)
GO

2. Create Store Procedure which use IdTable as Input paramter.

CREATE PROCEDURE [dbo].[SP_GET_PAYMENTS]                  @PaymentIds [dbo].[IdTable] READONLY                 
AS   
BEGIN  select p.Id,p.DueDate   from @PaymentIds tp     join Payments p with (nolock) on tp.Id=p.Id 
END  

3. Parameter convert to IdTable. SQLMapper Extension

  public static class Extensions{/// <summary>/// This extension converts an enumerable set to a Dapper TVP/// </summary>/// <typeparam name="T">type of enumerbale</typeparam>/// <param name="enumerable">list of values</param>/// <param name="typeName">database type name</param>/// <param name="orderedColumnNames">if more than one column in a TVP, /// columns order must mtach order of columns in TVP</param>/// <returns>a custom query parameter</returns>public static SqlMapper.ICustomQueryParameter AsTableValuedParameter<T>(this IEnumerable<T> enumerable,string typeName, IEnumerable<string> orderedColumnNames = null){var dataTable = new DataTable();if (typeof(T).IsValueType || typeof(T).FullName.Equals("System.String")){dataTable.Columns.Add(orderedColumnNames == null ?"NONAME" : orderedColumnNames.First(), typeof(T));foreach (T obj in enumerable){dataTable.Rows.Add(obj);}}else{PropertyInfo[] properties = typeof(T).GetProperties(BindingFlags.Public | BindingFlags.Instance);PropertyInfo[] readableProperties = properties.Where(w => w.CanRead).ToArray();if (readableProperties.Length > 1 && orderedColumnNames == null)throw new ArgumentException("Ordered list of column names must be provided when TVP contains more than one column");var columnNames = (orderedColumnNames ??readableProperties.Select(s => s.Name)).ToArray();foreach (string name in columnNames){dataTable.Columns.Add(name, readableProperties.Single(s => s.Name.Equals(name)).PropertyType);}foreach (T obj in enumerable){dataTable.Rows.Add(columnNames.Select(s => readableProperties.Single(s2 => s2.Name.Equals(s)).GetValue(obj)).ToArray());}}return dataTable.AsTableValuedParameter(typeName);}}

4. Dapper code

Dapper version: 2.1.37

using System;
using System.Configuration;
using System.Collections.Generic;
using System.Data;
using System.Linq;
using System.Reflection;
using Dapper;
using log4net;
using Microsoft.Data.SqlClient;
using static Dapper.SqlMapper;public List<T> QueryEntitiesNoUTC<T>(string sqlCommand, object parameters, CommandType commandType, int commandTimeout = 60){using (SqlConnection Connection = GetSqlConnection(ConfigurationManager.ConnectionStrings["Default"].ConnectionString)){try{Connection.Open();List<T> returnValues = Connection.Query<T>(sqlCommand, parameters, commandType: commandType, commandTimeout: GetCommandTimeout(commandTimeout)).ToList<T>();Connection.Close();Connection.Dispose();return returnValues;}catch (Exception e){Log.Error(e);throw;}finally{Connection.Close();Connection.Dispose();}}}

5. C# call Demo

        public static List<PaymentDto> GetPayment(List<int> paymentIds){if (paymentIds == null || paymentIds.Count == 0){return new();}var param = new { PaymentIds = paymentIds.AsTableValuedParameter("dbo.IdTable", new List<string>() { "Id" }) };var result = dapperHelper.QueryEntitiesNoUTC<PaymentDto>("SP_GET_PAYMENTS", param, CommandType.StoredProcedure, SqlConstants.GetBiggerRecordsTimeoutSeconds);return result;}

如果是多个参数:

var param = new { PaymentIds= paymentIds.AsTableValuedParameter("dbo.IdTable", new List<string>() { "Id" }), Status= status};

http://www.dtcms.com/wzjs/484177.html

相关文章:

  • 宁海有做网站的吗万网
  • 服装做外贸的网站建设百度网盘首页
  • 连接国外网站做端口映射长沙在线网站的目标客户
  • 省政府领导分工网站优化排名的方法
  • 网站设计怎么边加载变查看网络营销策划方案
  • 陕西做网站的公司swot分析
  • 北京到安阳高铁外链seo招聘
  • 大学英文网站建设方案网站页面
  • 网站规划的特点宁波seo咨询
  • 做平面设计的网站广州头条今日头条新闻
  • 东莞行业网站建设公司网页制作模板
  • 网站黑链 工具最近一周新闻大事件
  • 哪些网站可以做顺风车我的百度账号登录
  • 潍坊网站建设电话中国十大外贸平台
  • 平稳有序推进网站建设核心关键词是什么意思
  • 杭州下沙做网站的论坛百度搜索引擎优化相关性评价
  • 网站建设公司-跨界鱼科技企业网站代运营
  • 做防护信息的网站最新热搜新闻
  • 洪洞网站建设权重查询爱站网
  • 北京制作手机网站seo推广平台服务
  • 网站上怎么做动画广告视频淘宝客推广有效果吗
  • 淄博手机网站建设免费网站推广方式
  • 石湾顺德网站建设搜索网站关键词
  • 自学网站建设看什么书steam交易链接怎么看
  • 网站建设费可以走办公费吗温州网站建设优化
  • 邯郸网站建设的地方关键词优化建议
  • 做淘宝内部优惠券网站要钱么做谷歌推广比较好的公司
  • 国外财经网站是怎么做的免费推广自己的网站
  • 广州站在哪个区公司网站设计的内容有哪些
  • 做剧情游戏的网站seo优化的搜索排名影响因素主要有