一. 简介 1. 正宗的CodeFirst模式是不含有edmx模型,需要手动创建实体.创建EF上下文,然后生成通过代码来自动映射生成数据库. 2. 旨在:忘记SQL.忘记数据库. 3. 三类配置:One To One(one-to-zero-or-one).One To Many.Many To Many. 注意:在该模块使用最简单的模式配置这三种关系,暂时先不考虑DataAnnotation和Fluent API  A. One To One(one-to-zero-or-one) ①:一个学…
ASP.NET MVC深入浅出(被替换)   一. 谈情怀-ASP.NET体系 从事.Net开发以来,最先接触的Web开发框架是Asp.Net WebForm,该框架高度封装,为了隐藏Http的无状态模式,ViewState功不可没,通过的控件的拖拽和绑定,很快就可以搭建出来一个Web项目,其开发速度远胜Java.PHP,当年Web项目并不很重视体验,没有今天响应式,没有各种前端js框架,所以在当年的WebForm,微软是以引以为豪的. 该框架毕竟有时代局限性,随着前端的崛起,随着人们对项目体验…
一. 简介 我们在前面章节介绍EF基本增删改的时候,曾说过EF的SaveChanges()方法,会一次性的将所有的实体的状态变化统一提交到数据库,那么你是否想过EF的实体会有哪些状态变化呢?什么原因会导致其变化呢?我们怎么来追踪EF的实体变化呢?本章节以追踪EF实体状态变化的三种方式为线索,一一介绍上面疑问. 废不多说,还是先把整理的结论贴出来,然后配合代码来介绍. 1. EF的实体状态总共有5种:Added.Deleted.Modified.Detached.unChanged  ①. unC…
一. 什么是事务 我们通俗的理解事务就是一系列操作要么全部成功.要么全部失败(不可能存在部分成功,部分失败的情况). 举一个事务在我们日常生活中的经典例子:两张银行卡(甲.乙),甲向乙转钱,整个过程需要执行两个操作,甲账户钱减少,乙账户钱增加,这是转账成功的情况:转账失败时候,二者均不执行,甲乙账户钱都不变. 1. SQLServer中的事务 SQLServer中的事务具体封装方式有多种,但无论是哪种,都需要依赖于这三句代码:begin transaction .commit transacti…
一. 简介 EF连接数据库有三种模式,分别是DBFirst.ModelFirst.CodeFirst,分别适用于不同的开发场景. 该章节,将主要介绍EF的DBFirst连接SQLServer数据库和MySql数据库两种操作方式 该模式在EF中出现的出现的最早,符合我们的传统开发模式,先设计数据库→然后在代码通过EF与数据库建立映射关系,是EF最早的一种使用方式,使用广泛.以数据库为驱动,生成实体模型,从而驱动整个开发流程. (1). 优点:操作简单,直接通过可视化界面与数据库表(存储过程.视图等…
一. 简介 [来自数据库的Code First模式]实质上并不是CodeFirst模式,而是DBFirst模式的轻量级版本,在该模式中取消了edmx模型和T4模板,直接生成了EF上下文和相应的类,该模式出现在VS2015版本以后.   该模式也是适用于数据库已经设计建好的情况. 生成的上下文和类库如下: 二. 使用介绍 使用方法除了,选择模式的不一致,其他的使用步骤同DBFirst完全相同. 选择对应的模式…
一. 简介 1. DataAnnotations说明:EF提供以特性的方式添加到 domain classes上,其中包括两类:  A:System.ComponentModel.DataAnnotations命名空间下的特性是表中列的属性的. 包括:Key.Required.MinLength和MaxLength.StringLength.Timestamp.ConcurrencyCheck. B:System.ComponentModel.DataAnnotations.Schema命名空间…
1.DateBase First(数据库优先) 2.Model First(模型优先) 3.Code First(代码优先) 当然,如果把Code First模式的两种具体方式独立出来,那就是四种了. Code First(New DataBase) :在代码中定义类和映射关系并通过model生成数据库,使用迁移技术更新数据库. Code First(Existing DataBase):在代码中定义类和映射关系,给逆向工程提供工具. Model First:在设计器中创建Model,并用Mod…
一. 背景 上一个章节,介绍了EF调用两类SQL语句,主要是借助 ExecuteSqlCommand  和 SqlQuery 两个方法来完成,在本章节主要是复习几类存储过程的写法和对应的EF调用这几类存储过程的写法,另外介绍EF的DBFirst模式的下EF存储过程的特有写法. 本章要达到以下几个目标: ① 熟练掌握存储过程的相关概念和几类写法(去复习) ② EF各种模式调用各种存储过程的通用写法(也是借助  ExecuteSqlCommand  和 SqlQuery ) ③ EF的DBFirst…
概述 在开发面向数据的软件时我们常常为了解决业务问题实体.关系和逻辑构建模型而费尽心机,ORM的产生为我们提供了一种优雅的解决方案.ADO.NET Entity Framework是.NET开发中一种由ADO.NET驱动的ORM框架,使用Entity Framework开发人员可以不必考虑数据的基础数据表和列,在处理数据时能够以更高的抽象级别进行工作,并能够以相对传统开发编写更少的代码来创建和维护应用程序. 我们知道面向对象的编程与数据存储系统的交换提出了一个难题:类结构通常同关系数据表组织结构…