随笔分类 - 01-c#基础
摘要:一、GAC的作用 全称是Global Assembly Cache作用是可以存放一些有很多程序都要用到的公共Assembly,例如System.Data、System.Windows.Forms等等。这样,很多程序就可以从GAC里面取得Assembly,而不需要再把所有要用到的Assembly都拷贝
阅读全文
posted @ 2020-07-10 17:08
Linybo2008
摘要:AOP为Aspect Oriented Programming的缩写,意为:面向切面编程,通过预编译方式和运行期动态代理实现程序功能的中统一处理业务逻辑的一种技术,比较常见的场景是:日志记录,错误捕获、性能监控等 AOP的本质是通过代理对象来间接执行真实对象,在代理类中往往会添加装饰一些额外的业务代
阅读全文
posted @ 2020-07-08 13:44
Linybo2008
摘要:本节讨论内容主要针对收集了上篇文章大家碰到问题的讨论解决,会持续收集扩充。 DbContext加载原值,当前值,数据库值,属性操作,对象复制,对象值复制(VO,DTO->POCO),复杂对象取值 DbContext Local Data与AsNoTracking无跟踪查询 如何提高效率 DbCont
阅读全文
posted @ 2020-07-07 14:01
Linybo2008
摘要:本节针对EF当前支持的查询方式进行分析比较,和简单自定义条件查询的实现。 EF的查询方式 自定义条件查询 一、EF的查询方式 EF提供的查询方式有以下几种 原始SQL查询 LINQ To Entity and Lambda ESQL 与 ObjectQuery ObjectQuery 查询生成器 1
阅读全文
posted @ 2020-07-07 13:59
Linybo2008
摘要:EF虽然是一个晚生畸形的ORM框架,但功能强大又具有灵活性的,给了开发人员一定的发挥空间。因为微软出发点总是好的,让开发变得简单,但实际上不是所有的事情都这么理想。这里顺便推荐马丁大叔的书《企业应架构模式》。 本节主要深入分析EF的分层问题,下面是本节的已列出的要探讨内容。 领域模型的概念 DbCo
阅读全文
posted @ 2020-07-07 13:57
Linybo2008
摘要:DbContext是域或实体类与数据库之间的桥梁。 功能: 查询:将LINQ-to-Entities查询转换为SQL查询并将其发送到数据库。 更改跟踪:跟踪实体在从数据库查询后发生的更改。 持久化数据:根据实体的状态对数据库执行插入,更新和删除操作。 缓存:默认提供一级缓存。它存储在上下文类生命周期
阅读全文
posted @ 2020-07-07 13:48
Linybo2008
摘要:导航属性的理解: 指数据库的表所对应的实体类,除了要有每个字段所对应的属性之外,还应该有一个与之有关联的表的属性,一对一的关系就是关联表的类型,一对多的关系就是关联表的类型的ICollection的泛型集合。(结合下面例子理解) 1.一对一关系类型 上图中Student和StudentAddress
阅读全文
posted @ 2020-07-07 13:39
Linybo2008
摘要:使用EF实现实体持久化(保存)到数据库有两种情况:在线场景和离线场景。 1.在线场景 在线场景中,context是上下文实例,读写都通过一个context。 这种方案适用于连接本地数据库或同一网络上的数据库。 优点: 执行速度快。上下文跟踪所有实体,并在实体发生更改时自动设置适当的状态。 缺点: 上
阅读全文
posted @ 2020-07-07 13:38
Linybo2008
摘要:1.EF基本的CRUD(增删改查)流程 2.EF的工作过程简析 EDM--Entity Data Model--实体数据模型 概念模型: EF通过领域类,上下文类,默认约定和配置构建概念模型。 存储模型: EF为底层数据库架构构建存储模型。在代码优先方法中,根据概念模型进行推断来构建。在数据库优先模
阅读全文
posted @ 2020-07-07 13:37
Linybo2008
摘要:测试环境:win7 x64 测试程序:WCF查询数据库后将数据集返回到Winform程序加载并显示 测试结果: 1.从感觉来说Exe在 x86目标平台生成,启动速度快。 2.内存消耗:x86的程序在超出150MB后会进行回收;x64的程序在超出300MB后会进行回收。(该结果从任务管理器中体现) 解
阅读全文
posted @ 2020-07-07 10:57
Linybo2008
摘要:先写两个有继承关系的类Person、Son和一个接口IProgram: using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks
阅读全文
posted @ 2020-07-07 09:26
Linybo2008
摘要:直观测试代码如下: ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 public partial class NaviControl : UserControl, ITestControl
阅读全文
posted @ 2020-07-07 09:25
Linybo2008
摘要:1、安装打包插件:Microsoft Visual Studio 2017 Installer Projects 打开vs2017 ,选择 工具 --> 扩展和更新 --> 联机,搜索Microsoft Visual Studio 2017 Installer Projects,进行安装。安装好以后
阅读全文
posted @ 2020-07-06 14:06
Linybo2008
摘要:历史版本 C#作为微软2000年以后.NET平台开发的当家语言,发展至今具有17年的历史,语言本身具有丰富的特性,微软对其更新支持也十分支持。微软将C#提交给标准组织ECMA,C# 5.0目前是ECMA发布的最新规范,C# 6.0还是草案阶段,C# 7.1是微软当前提供的最新规范。 这里仅仅列个提纲
阅读全文
posted @ 2020-07-06 13:46
Linybo2008
摘要:1) async / await 使用 async / await 模式,可以在执行代码块操作的时候不会阻塞 UI 或者当前的线程。即使该操作被某些执行动作延迟了(比如一个 web 请求),async / await 模式也会继续执行后续的代码。 微软文档:https://msdn.microsof
阅读全文
posted @ 2020-07-06 13:44
Linybo2008
摘要:一、SqlConnection:创建数据库连接对象 二、Sqlcommand:执行SQL语句对象 三、SqlDataReader:查询一条或多条数据对象 四、SqlDataAdapter:检索和保存数据的对象 五、DataSet:创建一个本地数据存储对象 六、SqlHelper:工具类,利用这个类来
阅读全文
posted @ 2020-07-03 09:20
Linybo2008
摘要:Lambda表达式: 1.下面举例通过Lambda表达式创建了一个用于验证Name的Func委托。 //通过Lambda表达式创建一个对象的Name属性验证委托 Func<SearchInfo, bool> func = x => x.Name.Equals("5"); /// <summary>
阅读全文
posted @ 2020-07-01 13:33
Linybo2008
摘要:目录 简介 Lambda 表达式创建表达式树 API 创建表达式树 解析表达式树 表达式树的永久性 编译表达式树 执行表达式树 修改表达式树 调试 简介 表达式树以树形数据结构表示代码,其中每一个节点都是一种表达式,比如方法调用和 x < y 这样的二元运算等。 你可以对表达式树中的代码进行编辑和运
阅读全文
posted @ 2020-07-01 12:05
Linybo2008
摘要:目录 特性简介 使用特性 特性的参数 特性的目标 特性的常见用途 创建自定义的特性 使用反射访问特性 一、特性简介 特性提供功能强大的方法,用以将元数据或声明信息与代码(程序集、类型、方法、属性等)相关联。特性与程序实体关联后,可在运行时使用“反射”查询特性。 特性具有以下属性: (1)特性可向程序
阅读全文
posted @ 2020-07-01 11:55
Linybo2008
摘要:一、什么是特性 特性是一种允许我们向程序的程序集添加元数据的语言结构,它是用于保存程序结构信息的某种特殊类型的类。 MSDN中对它的解释是:特性提供功能强大的方法以将声明信息与 C# 代码(类型、方法、属性等)相关联。特性与程序实体关联后,即可在运行时使用名为“反射”的技术查询属性。 (有关元数据和
阅读全文
posted @ 2020-07-01 11:53
Linybo2008