摘要: EF更新少量字段需要解决两个问题 1.动态的将需要更新的字段提取出来 2.将提取出来的字段设为更新状态 通常更新的时候,都是根据条件将实体取出来,然后赋值字段,最后更新整个实体,所以在方法上看似是更新少量字段,其实是更新了所有字段,比较浪费性能 获取要更新的字段列表 更新 阅读全文
posted @ 2016-12-21 17:03 一条大河啊波浪宽啊 阅读(2011) 评论(0) 推荐(0) 编辑
摘要: API 通过get请求,注意用到一个[FromUri]特性,使GET接收实体参数 阅读全文
posted @ 2016-12-21 16:18 一条大河啊波浪宽啊 阅读(1585) 评论(0) 推荐(0) 编辑
摘要: 采用表达式树进行多表连查,作为一个棘手的问题,在不使用linq的情况下,稍微封装了一下 作为简单规整的连接查询,避免了sql还是比较方便,基本上考虑到多表、条件<带参数化>、排序,对于较为复杂的查询譬如分组、嵌套等,因为封装起来实在太复杂,就算封装出来了也会像写linq一样写的比较复杂,不如直接写s 阅读全文
posted @ 2016-11-01 16:21 一条大河啊波浪宽啊 阅读(968) 评论(2) 推荐(1) 编辑
摘要: 针对之前的使用,做了进一步优化 1.将DAL对象缓存起来 2.仓储类不依赖固定构造的DbContext,执行操作的时候,从线程中动态读取DbContext,这一步也是为了方便将DAL对象缓存起来,解决缓存对象的DbContext的释放问题,没有依赖固定构造的DbContext就不存在释放问题了。(如 阅读全文
posted @ 2016-10-20 18:00 一条大河啊波浪宽啊 阅读(1034) 评论(0) 推荐(0) 编辑
摘要: 用dynamic接收匿名对象很方便,因为不需要去定义model了,但是也有一个弊端,就是匿名对象的作用范围是internal的,也就是只能存在于当前程序域,所以用dynimic跨程序域去接收一个匿名对象,显而易见是接收不到的 那么有什么好的解决办法么 第一种 [assembly: Internals 阅读全文
posted @ 2016-10-09 17:13 一条大河啊波浪宽啊 阅读(332) 评论(0) 推荐(0) 编辑
摘要: 总结:在实体或者直接在参数中采用dynamic可以动态的接收参数 但是ajax在调用的时候稍微有一点不同 data: JSON.stringify({"JsonKey": "13", "JsonObj": { "Key1": "11", "Key2": "-10" } }), contentType 阅读全文
posted @ 2016-09-30 22:44 一条大河啊波浪宽啊 阅读(1794) 评论(0) 推荐(0) 编辑
摘要: IQueryable<TOuter>的扩展方法中提供了 INNER JOIN,GROUP JOIN但是没有提供LEFT JOIN GROUP JOIN适用于一对多的场景,如果关联的GROUP没有条目,会显示List条目为0,这一点其实也是LEFT join, 但是如果反过来,对于多对一的场景,虽然可 阅读全文
posted @ 2016-09-25 15:10 一条大河啊波浪宽啊 阅读(3890) 评论(1) 推荐(1) 编辑
摘要: 所以linq为什么要这么写,看到生成的sql语句 就不言而喻了,因为linq多管闲事的将NULL给总结进去了 阅读全文
posted @ 2016-09-21 18:33 一条大河啊波浪宽啊 阅读(18920) 评论(2) 推荐(0) 编辑
摘要: 有时候直接查询出一个实体,比较浪费性能,对于字段比较少的表来说差异不大,但是如果一个表有几十个字段,你只要取出一个字段或者几个字段,而取出整个实体,性能就会有差异了。 单个字段就比较简单了 var s= testDal.GetScalar<string>(m=>m.Code== "02018",m= 阅读全文
posted @ 2016-09-21 16:36 一条大河啊波浪宽啊 阅读(7555) 评论(0) 推荐(1) 编辑
摘要: 也许介绍的方法并不是完美的解决方法 web工程里添加这两项 里面会生成两个模板文件 上下文模板和实体类模板,现在主要对实体类模板进行改良 1.讲using 放在文件头 <#=codeStringGenerator.UsingDirectives(inHeader: true)#> false改为tr 阅读全文
posted @ 2016-09-12 15:10 一条大河啊波浪宽啊 阅读(405) 评论(0) 推荐(0) 编辑