摘要:
概述 在项目一开始,没有数据库时,可以借助 EF 设计模型,然后根据模型同步完成数据库中表的创建,这就是 Model First 开发方式。 总结一点就是:现有模型再有表。 创建 Model First Demo 创建 Model First 的步骤如下: (1)创建控制台项目 右击解决方案 “EF 阅读全文
摘要:
在开发过程中,项目往往被划分为多层,而一个请求过来往往是从表示层开始一层一层向下调用,那么如果我们在不同的层中都使用到了 EF 上下文对象,而 有好几层都这么创建一个 EF 对象然后对其进行操作,那么最终哪一层的 EF 对象是我们需要的最新的数据就很难确定了,这是就很容易产生脏读。 在这种情况下,我 阅读全文
摘要:
1. 简单查询 2. 条件查询 普通 LINQ 写法: Lambda 表达式写法: 3. 排序分页 4. 聚合 5. 连接 可以使用的连接有 Join 和 GroupJoin 方法。 GroupJoin 组连接等效于左外连接,返回第一个(左侧)数据源的每个元素(即使其他数据源中没有关联元素)。 EF 阅读全文
摘要:
IQueryable 与 IEnumberable 接口的区别是: IEnumberable<T> 泛型类在调用自己的 SKip 和 Take 等扩展方法之前数据就已经加载在本地内存里了, 而 IQueryable<T> 是将 SKip、Take 这些方法表达式翻译成 T-SQL 语句之后再向 SQ 阅读全文
摘要:
新增 添加命名空间引用 System.Data.Entity.Infrastructure: 查询 简单查询和延时加载 “延迟加载”有两种形式: (1)EF 本身查询方法返回的都是 IQueryable 接口,此时并未查询数据库。只有当调用接口方法获取数据时,才会查询数据库。 (2)当前可能通过多个 阅读全文
摘要:
概述 Database First 又叫数据库优先的开发方式,是一种比较旧的开发方式,现在越来越多的企业已经不再使用此种开发方式。 当然,对于一些旧项目进行升级,在已经有了数据库的情况下,使用此种方式还是十分方便的。 2.2.1 创建 Database First Demo 1. 创建控制台项目(新 阅读全文
摘要:
可选参数 可选参数是 C# 4.0 提出来的,当我们调用方法,不给这个参数(可选参数)赋值时,它会使用我们定义的默认值。 需要注意的是: (1)可选参数必须位于所有必选参数的后面; (2)可选参数必须指定一个默认值,且默认值必须是一个常量表达式,不能为变量; (3)所有可选参数以后的参数都必须是可选 阅读全文
摘要:
概述 匿名方法的本质其实就是委托。 编译后会生成委托对象,生成方法,然后把方法装入委托对象,最后赋值给声明的委托变量。 (匿名方法可以省略参数:编译的时候会自动为这个方法按照委托签名的参数添加参数) 实例: 阅读全文
摘要:
概述 Lambda 表达式的本质就是匿名函数。(而匿名方法的本质是委托) “Lambda 表达式”是一个匿名函数,可以包含表达式和语句,并且可用于创建委托或表达式树类型。 (Lambda 表达式的运算符为 =>,读作“goes to”。=> 运算符具有与赋值运算符(=)相同的优先级) Lambda 阅读全文
摘要:
内置委托的定义声明: System.Func,代表有返回类型的委托: 注:输入泛型参数 -in 最多可以有16个,输出泛型参数 -out 只有一个。 System.Action,代表无返回类型的委托: 注:最多有 16 个参数(全是输入参数)。 Func / Action 委托使用可变性: 协变指的 阅读全文