using


Entity Framework作类库项目无法使用using语法的解决办法

最近在玩Entity Framework。我们通常设计程序的时候,会把数据访问、业务逻辑层和客户应用分开做。所以我也希望将Entity Framework生成的Entities放在一个类库中,再用客户程序去使用这个封装好的类库。结果在客户程序里,使用C#自动回收资源的那个using语句的时候居然会报错: 错误消息是这个Entities类型没有实现IDisposable接口。这显然是不可能的。因为将EF放在单个项目中时,这样写是没有问题的。于是我看了下DiaosFixEnities这个类型: 发现这个类型继承自ObjectContext,再看一下ObjectContext类型: 确实集成了IDisposable。根据C#面向对象的特性,DiaosFixEnities应当已经继承了IDisposable接口,但未毛客户程序还报错说没有继承这个接口呢? 观察发现, …


当using遇到return

C#一大牛逼之处就是using语句简化了我们的程序。它的作用是在using结束后,立即释放被引用的资源。实质其实是调用被引用对象的Dispose()方法。这也是为喵被using的类型一定要实现IDisposable接口。虽然在.NET和JAVA里,程序员都不用关心手动释放内存的问题,但我认为在使用资源的时候加上using,是一种良好的习惯。有时候如果你不释放资源的话,可能会发生独占的问题。 好了,扯多了,话说回来,看看我今天遇到的一个有意思的问题。 今天心血来潮,想检验一下自己的代码,于是给项目启用了代码分析,用的是“Microsoft最少量建议规则”。结果以下代码产生了编译警告: public DataSet ExecuteDataSet(DbCommand cmd, Trans t) { cmd.Connection = t. …