代码改变世界

使用LinqPad从XML中提取数据

2015-06-05 15:51 by FMax, 363 阅读, 0 推荐, 收藏, 编辑
摘要:最近刚完成一个工作,在Control-M里建立了几百个Jobs。弄完之后,又被要求填写一个excel,将这些jobs的名称,运行时间,运行的节点等信息列出来,方便以后查阅。建这些jobs已经让我郁闷坏了,不停的点点点,CtrlC,CtrlV,搞了好久才搞好。这又要去填Excel,如果又是一个一个的j... 阅读全文

利用Expression实现DbReader到对象属性的绑定

2013-07-18 23:42 by FMax, 1321 阅读, 2 推荐, 收藏, 编辑
摘要:最近在工作中的一个项目使用了一种很小众的数据库:Vertica。小众的东西有很多缺点,比如它的.Netclient没有实现LINQ。而这个项目有大量的读取数据库的操作,之前用惯了LINQ,现在却要回到原始社会,写command,从DbReader里把值读出来,写到对象的属性上,想想就各种不爽:大量的hard code的字段名称,不光容易写错,还容易写漏;赋值时,又要处理null值,又要处理各种数据类型的转换。不光代码写起来麻烦,还要写很多测试来保证这些代码的正确。而在LINQ的帮助下,这一切都是透明的。为了能心情愉悦的完成项目,指望HP能出个LINQ provider是没戏的了,我决定从LIN 阅读全文

EntityFramework 4.x 使用中遇到的问题 (2)

2012-04-26 20:01 by FMax, 218 阅读, 0 推荐, 收藏, 编辑
摘要:Single(), SingleOrDefault(), First() & FirstOrDefault()的区别先说XXX() & XXXOrDefault()的区别,这个很好理解,无论Single() or First(),当数据源不存在数据时,将会抛出异常。所以多数情况下,我们一般会选用XXXOrDefault()方法。再说Single() 与 First()的区别:当调用Single()方法的时候,生成的sql语句会类似:SELECT TOP 2 .... FROM ...;而First()的sql语句却是:SELECT TOP 1 ... FROM ...。Firs 阅读全文

EntityFramework 4.x 使用中遇到的问题 (1)

2012-04-18 21:34 by FMax, 272 阅读, 0 推荐, 收藏, 编辑
摘要:在目前项目里,使用Code First的模式,但数据库已经存在,并且在数据库中并未设立外键关系,但在实体类中定义了实体关系。以上为这次遇到问题的背景。问题:在保存一组数据的时候,提示出现主键重复的问题。相关代码:Dictionary<<Tuple<string, int>, Detail> details = ... // 该数据有方法外部传入if(order.Details != null) // Order对象包含一个Detail对象的列表{ foreach(var d in order.Details.ToArray()) { var key = Tuple 阅读全文

Visual Studio 插件的开发

2011-07-09 11:46 by FMax, 7221 阅读, 8 推荐, 收藏, 编辑
摘要:更新下,发现后面没写完. 起因 在做项目的时候,经常需要根据表结构create一些实体类,写多了,实在是觉得无趣,于是就琢磨着做个代码生成工具。当然现在有很多现成的,拿来用就好,可是总想自己弄个出来玩玩,一来是当初用DataSet,VS可以根据一个xsd文件生成那么多代码,可以拖拖拽拽就搞定,一直没闹明白是怎么做的,不甘心,总想弄明白,二来,公司里,数据库的脚本大多是根据一个xml配置文件生成的,... 阅读全文

F#学习笔记-函数式编程(一)

2010-06-06 08:59 by FMax, 316 阅读, 0 推荐, 收藏, 编辑
摘要:F#支持3种编程范式:函数式(Functional Programming), 命令式(Imperative Programming)& 面向对象式(Object-oriented Programming)。函数式范式则是F#中最重要的,也是最能体现F#威力的一种方式。在很长一段时间,我以为函数式编程和命令式编程是一回事,以为在C里面写了一堆函数(方法),一步步调用那些方法,就是函数式的编... 阅读全文

warning FS0025: Incomplete pattern matches on this expression

2010-05-27 20:56 by FMax, 302 阅读, 0 推荐, 收藏, 编辑
摘要:在看F#的模式匹配的时候,遇到一个问题: let f x =     match x with     | _ when x < 0 -> -1     | _ when x = 0 -> 0     | _ when x > 0 -> 1;; ... 阅读全文

F#学习笔记-程序结构

2010-05-25 23:13 by FMax, 266 阅读, 0 推荐, 收藏, 编辑
摘要:在F#里,组织代码的方式有两种方式:module & namespace 当在一个fs文件里写的所以代码,默认情况下,这些代码会归于一个以文件名为Module名(第一个字符大写)的module下。例如,在files.fs定义了一个名为Value1的值,那么在其他文件,或者其他项目里,引用这个值的方式为:Files.Value1(在C#项目里,这个module表现为一个静态类,没有publ... 阅读全文

F#学习笔记-核心类型(二)

2010-05-24 23:41 by FMax, 213 阅读, 0 推荐, 收藏, 编辑
摘要:前几天好多事,一直也没空看书,今天终于可以继续了。 Option Option类型可以看作是C#里的Nullable类型。Option类型的值含有2种的可能:Some('a) & None。 let isInteget str =     let successful, result = Int32.TryParse(str)   ... 阅读全文

F#学习笔记-核心类型(一)

2010-05-19 23:18 by FMax, 320 阅读, 1 推荐, 收藏, 编辑
摘要:前面介绍了.Net下的基本类型,但对于F#,还有些类型是非常重要的。 Unit Unit代表着什么都不是,它的意思有点像C#的void,但是void不是类型,而Unit是个类型。在F#里可以定义一个Unit类型的值。因为F#里的方法必须有返回值,所以当我们的某个方法不需要返回任何结果的时候,就可以在方法的最后写上句 () 也就是返回一个Unit类型。 let x = ();; val x ... 阅读全文