小编Jez*_*Jez的帖子

来自窗口函数子句的SQL Server的奇怪不一致行为?

在提出另一个问题时,我发现SQL Server(在2005年和2008年都发生过)在处理CASE窗口函数子句中的语句时似乎有奇怪的不一致行为.以下代码给出了错误:

declare @t table (SortColumn int)
insert @t values (1), (2), (3)
declare @asc bit
set @asc = 0

select  row_number() over (order by
            case when 1=1 then SortColumn end asc,
            case when 1=0 then SortColumn end desc) RowNumber
,       *
from    @t
Run Code Online (Sandbox Code Playgroud)

错误是窗口函数不支持常量作为ORDER BY子句表达式. 我认为这是因为case语句可以评估为NULL,这是一个常量.正如可能预期的那样,此代码也会出现相同的错误:

declare @t table (SortColumn int)
insert @t values (1), (2), (3)
declare @asc bit
set @asc = 0

select  row_number() over (order by
            NULL …
Run Code Online (Sandbox Code Playgroud)

sql t-sql sql-server

7
推荐指数
1
解决办法
1129
查看次数

在LINQ to Entities查询中调用自定义标量数据库函数?

有没有办法可以将自定义标量数据库函数称为LINQ to Entities查询的一部分?我在网上唯一能找到的就是这个页面:

https://docs.microsoft.com/en-us/dotnet/framework/data/adonet/ef/language-reference/how-to-call-custom-database-functions

但是,此处给出的说明似乎假设您使用的是DB-first方法并讨论修改.edmx文件.如果您使用代码优先方法呢?我希望能够写出这样的东西:

var result = await (
    from itm in _itemDataContext.Items
    where
        itm.QryGroup1 == "Y" &&
        _itemDataContext.Dbo_MyCustomScalarIntFn(itm.QryGroup2) > 0
).ToArrayAsync();
Run Code Online (Sandbox Code Playgroud)

c# linq sql-server entity-framework ef-code-first

7
推荐指数
1
解决办法
640
查看次数

更改ASP.net应用程序根目录?

因此,ASP.net具有"应用程序根"的概念.它是URL的路径部分,对应于为IIS中的应用程序设置的根目录.波形符(〜)映射到ASP.net URL中的那条路径,所以如果ASP.net认为我的应用程序位于/ MyApp,那么服务器控件中我的URL为"〜/ Scripts/script.js"的内容将解析to(并发送到浏览器)"/ MyApp/Scr​​ipts/script.js".

这是一个很长的镜头,但有没有办法可以任意改变这个应用程序根目录?我实际上在另一个目录下有一个应用程序,我正在使用URL重写使它可用,而没有前缀目录名称,但ASP.net总是在我使用〜的任何地方前缀dir名称.我真的想让〜解决一个空字符串.可以做到吗?

c# asp.net web-applications web-config

6
推荐指数
1
解决办法
6016
查看次数

如何将WordOpenXML属性转换为System.IO.Packaging.Package?

我一直在尝试使用Visual Studio 2008在C#中构建Outlook 2010插件.我能够Microsoft.Office.Interop.Word.DocumentClassMicrosoft.Office.Interop.Outlook.Inspector对象中获取一个对象,该对象代表当前正在编辑的电子邮件.我知道这DocumentClass也用于其他各种情况(通常用于Microsoft Word扩展,不出所料).

该类有一个被调用的属性WordOpenXML,它似乎是构成该.docx包的所有文件的XML表示,当将该Word文档另存为时,该文件将保存到磁盘.docx.

这个属性非常有用的一种方法是它是否可以转换成System.IO.Packaging.Package内存中的对象; 即.反序列化它.有谁知道是否有一种简单的方法可以做到这一点,还是我需要编写一些XML解析代码来手动完成它?

c# outlook add-in ms-word visual-studio

6
推荐指数
1
解决办法
2089
查看次数

检查客户端是否可以访问资源的RESTful方法是什么?

我正在尝试确定REST API中的最佳实践,以确定客户端是否可以访问特定资源.两个快速示例场景:

电话目录查找服务.客户通过访问例如查找电话号码.
GET http://host/directoryEntries/numbers/12345
...在12345目录中尝试查找的电话号码在哪里.如果存在,它将返回诸如电话号码的人的姓名和地址之类的信息.

视频格式转换服务.客户端以一种格式提交视频,例如.
POST http://host/videos/
...并接收服务器为此视频生成的"视频GUID".客户然后检查例如.
GET http://host/videos/[GUID]/flv
...如果存在转换后的版本,则将视频转换为FLV格式.

您会注意到,在上述两种情况下,我都没有提到如果检查的资源存在会发生什么.这是我的问题.我在其他各个 地方读过,客户端检查资源是否存在的正确RESTful方式是调用(或可能)资源,如果资源不存在,则应该期待404响应.这很好,除了404响应被广泛认为是'错误'; 在HTTP/1.1规范规定,在4XX类的状态码适用于案件中,客户端"似乎出现了偏差".可是等等; 在这些例子中,客户肯定没有错.它期望它可以返回404(或其他;如果它没有被授权访问该资源,则可能是403),并且它在请求资源时没有任何错误.404并不是为了表示'错误条件',它只是信息 - '这不存在'. HEADGET

正如HTTP规范所暗示的那样,浏览器的行为就像404响应是真正的错误一样.每当XHR请求收到404时,Google Chrome和Firebug的控制台都会向Javascript控制台发出一条红色的"404 Not Found"错误消息,无论是否由错误处理程序处理,并且没有禁用它的方法.这对用户来说不是问题,因为他们没有看到控制台,但作为开发人员,当我完全了解时,我不希望在我的JS控制台中看到一堆404(或403等)错误以及它们不是错误,而是由我的Javascript代码处理的信息.这是线路噪音.在我给出的第二个例子中,它的线路噪声到了极端,因为客户端可能正在轮询服务器,/flv因为它可能需要一段时间来编译并且客户端想要显示"尚未编译",直到它变为非-404.每隔一两秒,JS控制台中可能会出现404错误.

那么,这是我们使用REST检查资源是否存在的最佳或最恰当的方式?我们如何绕过JS控制台中的线路噪音?可以建议,在我的第二个例子中,可以查询不同的URI来检查编译的状态,例如:
GET http://host/videos/[GUID]/compileStatus
......但是,这似乎违反了REST原则,对我而言; 你没有完全使用HTTP并注意HTTP标头,而是创建自己的协议,你在身体中返回信息告诉你你想要知道什么,并总是返回一个HTTP 200来关闭浏览器.这是对SOAP的一个主要批评 - 它试图"绕过"HTTP而不是完全使用它.根据这个原则,为什么需要返回404状态代码?您总是可以返回200 - 当然,200表示资源的状态信息可用,状态信息告诉您您真正想知道的内容 - 找不到资源.当然,RESTful方式应该是返回404状态代码.

如果我们将它应用于上面的第一个例子,这个机制似乎更加人为; 客户端可能会查询:
GET http://host/directoryEntries/numberStatuses/12345
...当然会收到200; 数字12345状态信息存在,并告诉您......在目录中找不到该号码.这意味着查询的任何数字都是"200 OK",即使它可能不存在 - 这看起来像一个好的REST接口吗?

我错过了什么吗?有没有更好的方法来确定资源是否存在RESTful,或者是否应该更新HTTP以指示非2xx状态代码不一定被视为"错误",并且只是信息?是否应该配置浏览器,以便它们不总是在JS控制台中输出非2xx状态响应作为"错误"?

PS.如果你读到这里,谢谢.;-)

javascript rest firebug google-chrome http

6
推荐指数
1
解决办法
3562
查看次数

为什么设置表单身份验证超时超过会话超时?

我想我理解ASP.NET的"会话"和"表单身份验证"之间的区别.Session主要用于存储特定于该用户会话的信息(可能是搜索过滤器的状态),并且表单身份验证用于记住他们应该可以访问某些内容.

我的问题是,为什么表格认证超时比会话超时更长?事实上,在默认情况下,web.config中设置窗体身份验证的超时时间为长.

以下是我看到的两个场景:

  1. 会话在表单身份验证之前超时.用户失去搜索过滤器之类的东西,虽然他们仍然可以看到安全页面,但事情可能看起来不同,各种事情可能会重置.此外,开发人员null每次使用会话时都必须担心会话.
  2. 在会话之前表示身份验证超时.用户必须重新输入用户名和密码,但他们会回到他们所在的页面并且会话信息完好无损(除非它也超时).开发人员只需担心会话null在一个地方 - 登录时 - 并且可以在必要时将其初始化.

为什么场景1)会更加可取?我错过了什么吗?

asp.net session forms-authentication

6
推荐指数
1
解决办法
5688
查看次数

ASP.NET捆绑 - 默认虚拟路径?

据我可以告诉(因为坦率地说文档上System.Web.Optimization非常稀少),捆绑在ASP.NET的工作方式是,你注册一组文件(JavaScript或CSS,相应的ScriptBundleStyleBundle),并将它们与虚拟路径关联; 例如,~/bundles/jqueryui对于所有jQuery UI脚本.稍后,当您在非调试模式下运行时,ASP.NET可以缩小这些文件,并且缩小版本将在您为该包指定的虚拟路径上可用.

默认的bundle setup将一些脚本包注册~/bundles/...为虚拟路径,将一些CSS注册~/Content/css为虚拟路径.我的问题是,这不一致吗?那岂不是更有意义,有一些像~/bundles/js/...~/bundles/css/...?实际上,该~/Content目录实际上是作为真实目录存在的,因此甚至存在名称冲突的可能性.我原以为你希望你的虚拟包路径是默认情况下存在的目录,并不打算在实际的文件系统上创建.是否有一些原因~/Content/css用于我不理解的CSS捆绑虚拟路径?

asp.net bundle web-optimization asp.net-optimization

6
推荐指数
1
解决办法
1898
查看次数

如何删除VS2013中的标签关闭按钮?

看起来您可以删除Visual Studio 2013中的选项卡关闭按钮作为Productivity Power Tools 2013扩展的一部分,但这样做会有更多的东西,并且看起来像是大时间的过度杀伤只是为了摆脱那些讨厌的每个标签关闭按钮.有谁知道一个很好的简单方法吗?

tabs visual-studio-2013

6
推荐指数
1
解决办法
487
查看次数

您可以在项目/ sln文件中存储启动操作/启动项目吗?

当我更改Web应用程序项目的"开始操作"(例如"当前页面","特定页面","不打开页面"等)并保存时,Visual Studio不会将此选择存储在可能已签入的文件中源控制,如csprojsln.同样,如果我转到解决方案属性并选择多个启动项目并保存,则此选择也不会存储在此类文件中.有没有办法将这些信息存储在将被检入源代码管理而不是用户设置文件的文件中?

visual-studio

6
推荐指数
1
解决办法
310
查看次数

如何在 ASP.NET Core 3.0 中解密 .AspNetCore.Identity.Application cookie?

我想手动解密.AspNetCore.Identity.ApplicationASP.NET Core 3.0.0 存储的 cookie,以准确查看它包含哪些信息。我知道 Microsoft 在 ASP.NET Core 2.2 和 3.0 之间显着改变了此操作的方式,因此现在 3.0 已全面发布,我想知道:如何在应用程序代码中手动解密此 cookie在核心3.0中?

c# asp.net asp.net-core asp.net-core-3.0

6
推荐指数
1
解决办法
6188
查看次数