小编aba*_*hev的帖子

如何只比较EF中DateTime的日期组件?

我有两个日期值,一个已存储在数据库中,另一个由用户使用DatePicker选择.用例是从数据库中搜索特定日期.

先前在数据库中输入的值始终具有12:00:00的时间分量,其中从选择器输入的日期具有不同的时间分量.

我只对日期组件感兴趣,并且想要忽略时间组件.

在C#中进行这种比较的方法有哪些?

另外,如何在LINQ中执行此操作?

更新:在LINQ to Entities上,以下工作正常.

e => DateTime.Compare(e.FirstDate.Value, SecondDate) >= 0
Run Code Online (Sandbox Code Playgroud)

c# linq linq-to-entities entity-framework datetime-comparison

115
推荐指数
8
解决办法
14万
查看次数

设置WebRequest的正文数据

我在ASP.NET中创建一个Web请求,我需要向主体添加一堆数据.我怎么做?

var request = HttpWebRequest.Create(targetURL);
request.Method = "PUT";
response = (HttpWebResponse)request.GetResponse();
Run Code Online (Sandbox Code Playgroud)

c# httpwebrequest

115
推荐指数
3
解决办法
14万
查看次数

.NET中的"开放通用类型"究竟是什么?

我正在通过Asp.Net MVC课程并了解到,对于一种方法来确定控制器的动作,

  • 它必须没有"开放的通用类型"

我对某些泛型有所了解并在某种程度上使用它们,但是:

  • 什么是.Net中的开放泛型类型.
  • 是否存在封闭的泛型类型
  • 开放泛型类型是一个不经常使用的术语.与它混淆使用的是什么?

.net c# generics open-generics

114
推荐指数
4
解决办法
3万
查看次数

尝试调试WCF服务代码时,在"添加监视"功能中获取"表达式评估程序中的内部错误"(MSVS 2013)

几天前我把我的解决方案移到了MSVS 2013.它的工作正常,除了一件事:当我尝试调试我的WCF服务的代码时,它可以工作,但是当我想看任何变量的状态时它会说:"表达式中的内部错误评估".添加监视功能在客户端正常工作,但在服务代码中它已损坏.我正在尝试调试在localhost上运行的自己的WCF服务.你能帮帮我,怎么修这个?

在此输入图像描述

这里MSVS信息:Microsoft Visual Studio Professional 2013版本12.0.30110.00更新1 Microsoft .NET Framework版本4.5.51641操作系统:Windows 8.1

c# visual-studio-debugging visual-studio-2013

114
推荐指数
2
解决办法
3万
查看次数

在ASP.NET中,何时应该使用Session.Clear()而不是Session.Abandon()?

Session.Clear()和Session.Abandon()都摆脱了会话变量.据我了解,Abandon()结束当前会话,并导致创建一个新会话,从而导致End和Start事件被触发.

在大多数情况下,最好调用Abandon(),例如将用户注销.有没有我使用Clear()的情况?是否存在很大的性能差异?

.net asp.net session session-state

113
推荐指数
3
解决办法
11万
查看次数

如何检查有效的Base64编码字符串

在C#中是否有一种方法可以查看字符串是否为Base 64编码,而不仅仅是尝试转换它并查看是否存在错误?我有这样的代码:

// Convert base64-encoded hash value into a byte array.
byte[] HashBytes = Convert.FromBase64String(Value);
Run Code Online (Sandbox Code Playgroud)

我想避免如果该值不是有效的base 64字符串,则会出现"Base-64字符串中的无效字符"异常.我想检查并返回false而不是处理异常,因为我希望有时这个值不会是一个基本的64字符串.在使用Convert.FromBase64String函数之前有没有办法检查?

谢谢!

更新:
感谢您的所有答案.这是一个你可以使用的扩展方法到目前为止似乎确保你的字符串将传递Convert.FromBase64String而没有异常.当转换为base 64时,.NET似乎忽略所有尾随和结尾空格,因此"1234"有效,因此"1234"

public static bool IsBase64String(this string s)
{
    s = s.Trim();
    return (s.Length % 4 == 0) && Regex.IsMatch(s, @"^[a-zA-Z0-9\+/]*={0,3}$", RegexOptions.None);

}
Run Code Online (Sandbox Code Playgroud)

对于那些对测试性能与捕获和异常感到疑惑的人来说,在大多数情况下对于这个基础64事物来说,检查比捕获异常直到达到一定长度更快.它的长度越小越快

在我非常不科学的测试中:对于字符长度100,000 - 110000的10000次迭代,它首先测试快了2.7倍.

对于字符长度为1至16个字符的1000次迭代,总共16,000次测试,它的速度提高了10.9倍.

我确信有一点可以用基于异常的方法进行测试.我只是不知道那是什么意思.

c# validation base64

113
推荐指数
8
解决办法
10万
查看次数

捕获ASP.NET Web Api中所有未处理的异常

如何捕获ASP.NET Web Api中发生的所有未处理的异常,以便我可以记录它们?

到目前为止,我尝试过:

  • 创建并注册 ExceptionHandlingAttribute
  • 实现一个Application_Error方法Global.asax.cs
  • 订阅 AppDomain.CurrentDomain.UnhandledException
  • 订阅 TaskScheduler.UnobservedTaskException

ExceptionHandlingAttribute成功处理时引发的控制器操作方法和操作筛选范围内,但其他异常没有被处理,例如例外:

  • IQueryableaction方法返回的异常无法执行时抛出的异常
  • 消息处理程序抛出的异常(即HttpConfiguration.MessageHandlers)
  • 创建控制器实例时抛出异常

基本上,如果异常将导致500内部服务器错误返回到客户端,我希望它被记录.实现Application_Error在Web窗体和MVC中完成了这项工作 - 我可以在Web Api中使用什么?

c# unhandled-exception asp.net-web-api

112
推荐指数
4
解决办法
6万
查看次数

如何将一个字符串拆分并修剪成一行中的所有部分?

我想分开这一行:

string line = "First Name ; string ; firstName";
Run Code Online (Sandbox Code Playgroud)

进入他们修剪版本的数组:

"First Name"
"string"
"firstName"
Run Code Online (Sandbox Code Playgroud)

我怎么能在一条线上完成这一切?以下给出了一个错误"无法转换类型void":

List<string> parts = line.Split(';').ToList().ForEach(p => p.Trim()); 
Run Code Online (Sandbox Code Playgroud)

.net c# split trim

111
推荐指数
4
解决办法
8万
查看次数

实体框架4 Single()vs First()vs FirstOrDefault()

我有一个时间的魔鬼找到一个比较查询单个项目的不同方法,以及何时使用每个项目.

有没有人有一个比较所有这些的链接,或快速解释为什么你会使用一个而不是另一个?还有更多我不了解的运营商吗?

谢谢.

.net linq linq-to-entities entity-framework entity-framework-4

111
推荐指数
4
解决办法
7万
查看次数

从表中的列中删除标识

我们有一个5GB的表(接近5亿行),我们想删除其中一个列上的标识属性,但是当我们尝试通过SSMS执行此操作时 - 它会超时.

这可以通过T-SQL完成吗?

sql t-sql sql-server

111
推荐指数
7
解决办法
25万
查看次数