Category: 日常开发工作

  • FirstOrDefault和SingleOrDefault区别

    最近开始使用LINQ,总是不经意就遇到Sequence contains more than one element异常,归根到底是对FirstOrDefault方法和SingleOrDefault方法理解错误了。这里重新总结一下。

  • Entity Framework Validation failed for one or more entities的解决方法

    在使用EneityFramework的SaveChanges(),如果赋值的类型不对,或者没有满足Entity的属性条件,EntityFramework会抛Validation failed for one or more entities的异常,但是这个异常的详细信息里并不直接指出是哪个字段出错了。 解决方法:把SaveChange()包在一个Try里,捕获DbEntityValidationException,打印EntityValidationErrors

  • CS0103: The name ‘Scripts’ does not exist in the current context解决方法

    更新:这个bug在ASP.NET MVC 4正式版已经没有了。 今天试玩VS2012里的ASP.NET MVC4,用Controller里用Entity Framework生成模版后,发现页面报错CS0103: The name ‘Scripts’ does not exist in the current context。

  • SQL Server里用Split函数分割字符串

    这2天在写存储过程的时候发现SQL里没有Split函数在需要分割字符串的时候很是不方便,比如有时候存储过程某个参数是个用逗号做分隔符的字符串,就需要用到Split了。本着不重复制造轮子的原则,先上网搜索了一下,果然已经有兄弟实现了Split方法并且无私共享了代码。

  • 解决Windows Server 2008 R2虚拟机远程桌面性能缓慢问题

    今天遇到一个比较诡异的问题,Lab里的跑SCVMM Library服务器的虚拟机,突然开始响应很慢。具体表现为用远程桌面连接的时候,卡的就像放PPT一样,点一下,等2分钟。这个服务器是一个跑在Hyper-V宿主机上的虚拟机,宿主机和虚拟机都装的是Windows Server 2008 R2。Lab里运行Windows Server 2008 R2的虚拟机有上千台了,这还是第一次遇到这种情况。

  • Windows 8 App开发电子书

    2012是微软频频发布新产品的一年,很少会看到微软这么频繁的在一个财年里发布这么多的产品。一方面,这说明微软正在缩短产品的开发周期,让用户更早接触产品,以免重犯VISTA五年磨一剑的失败,另一方面,开发人员就悲剧了,本来一年看2本书就够了,现在得一季度看一本了。 blchen今天要介绍的是学Windows 8 App开发的2本电子书,都是由MSPress出品。

  • [C#]扩展CLR的原生类

    C# 3.0以后,允许开发人员对CLR里的原生类进行扩展,也就是说,您可以自由为CLR的各种类增加新的方法。 下面便是一个扩展CLR里的ObservableCollection类的例子,对其加上AddRange方法。

  • VS无法解析DataContractJsonSerializer

    今天把之前项目中写的一段转JSON的代码复制到Windows Phone的项目的代码里,结果发现Visual Studio无法解析DataContractJsonSerializer类,

  • Convert-WindowsImage–wim2vhd的进阶版

    今天blchen要介绍的这个妹纸叫做叫Convert-WindowsImage。Convert-WindowsImage的主要功能和wim2vhd差不多。(如果你还不熟悉WIM2VHD,这里先普及一下,WIM2VHD主要用于将Windows的安装介质转化为可以直接启动的VHD文件。WH2VHD完全自动化了用imagex.exe把install.wim文件解压,转成VHD,然后配置Boot Manager的繁琐过程,深受广大IT管理员的喜爱。那制作这些VHD意义何在?你可以把这些VHD文件当成Windows的基本镜像文件,它们可以直接用于基于Hyper-V/VMWare的虚拟机批量部署,也可以用于SCVMM的Library服务器配合Windows安装应答文件实现数据中心虚拟机自动化部署方案)。

  • 用代码检查DotNet 3.5或者4.0是否安装

    最近有个需求,需要验证客户端是否安装了DotNet 3.5。一开始本来打算用DotNetmscoree.dll里的GetCORVersion判断,不过实际测试了一下,发现GetCORVersion返回的是的当前系统CLR的版本号,由于DotNet 3.5本质上还是CLR 2.0,所以返回的结果是2.0。