EF基础知识小记二】的更多相关文章

1.EF的常用使用场景 (1).维护一个已经存在的数据库,VS提供了工具帮助我们把数据库中的表和视图等对象导入到实体框架.        [数据库=>模型(Database First)] (2).通过VS提供的实体设计器设计表模型,然后从头开始添加实体类型.类型间的关联以及继承体系到设计器中.模型创建好后,然后根据模型生成数据库.     [模型=>数据库(Model First)] (3).EF还提供了以代码为中心的模型设计方式,通过这种方式我们可以在不使用设计器的情况下,手工创建一系列的…
EF基础知识小记三(设计器=>数据库)介绍了如何创建一个空设计器模型,并如何将模型同步到数据库的表中,本文则主要介绍如何将一个存在的数据库同步到模型设计器中.为了能快速的模拟这个过程,给出一下建表语句,代码如下: --建表脚本 create table Student ( Id int not null, Name ) not null, Age int not null ) create table Teacher ( Id int not null, Name ) not null, Age…
一.拆分实体到多个表 1.在日常开发中,会经常碰到一些老系统,当客户提出一些新的需求,这些需求需要在原来的表的基础上加一些字段,大多数人会选择通过给原表添加字段的方式来完成这些需求,方法,虽然可行,但是如果架构不合理的系统,就会牵一发而动全身.所以处理这种需求比较合理的方式是:建一张新表来存放新的字段. 通过叫做合并两张及以上的表到一个单独的实体,也叫分拆一个实体到多个表,我们把每个组成部分当成一个逻辑实体.这个过程叫做逻辑分拆. 缺点:每当获取实体时,框架都需要额外的Join联结. 2.示例…
本文主要讲EF一对多关系和多对多关系的建立 一.模型设计器 1.一对多关系 右键设计器新增关联 导航属性和外键属性可修改 2.多对多关系 右键设计器新增关联 模型设计完毕之后,根据右键设计器根据模型生成数据库,就能生成对应的表之间的一对多和多对多关联 二.代码层面 建表语句如下: --建表脚本 create table Student ( Id int not null, Name ) not null, Age int not null ) create table Teacher ( Id…
日常开发中,经常会碰到一些自引用的实体,比如系统菜单.目录实体,这类实体往往自己引用自己,所以我们必须学会使用Code First来建立这一类的模型. 以下是自引用表的数据库关系图: ok,下面开始介绍从零创建一个Code First版的自引用模型. 1.往目标项目中添加EF包,通过NuGet程序包添加 导入相关的程序集. 2.创建自引用实体类 public class Category { [Key] [DatabaseGenerated(DatabaseGeneratedOption.Ide…
本文主要介绍通过EF的设计器来同步数据库和对应的实体类.并使用生成的实体上下文,来进行简单的增删查该操作 1.通过EF设计器创建一个简单模型 (1).右键目标项目添加新建项 (2).选择ADO.Net实体数据模型,并将实体模型命名为Recipe1,点击下一步 (3).选择空设计器,并点击完成 (4).edmx空模型创建完毕,下一步右键设计界面创建实体 (5).添加一个Person实体,实体属性如下图,并点击确定 图中创建键属性,实体会自动添加一个Id属性,并将该属性设为主键(数据库设计三范式之一…
1.EF等ORM解决方案出现的原因 因为软件开发中分析和解决问题的方法已经接近成熟,然后关系型数据库却没有,很多年来,数据依然是保存在表行列这样的模式里,所以,在面相对象和高度标准化的数据库中产生了一个失配(不匹配.阻抗失配,微软的安德斯.海尔斯伯格<C#之父>可能会这样叫它),为了解决这个失配,大多数项目中都会引入"数据处理层"来转换应用程序实体层的数据到数据库的行和列中,随着"数据处理层"的不断进化,最后ORM就诞生了. 2.集成查询语言LINQ L…
书写Linq查询有两种方法,第一种是通过方法语法(也就是扩展方法),第二种是查询表达式语法. 1.方法语法 方法语法就是通过扩展方法和Lambda表达式来创建查询 (1).链式查询 这种查询方式很多语言都支持,通过一段实例,介绍Linq的链式查询.需求如下:找出字符串数组中含有字母e的字符穿,并按长度排序,最后将结果转为大写.代码如下: string[] names = {"James","Kobe","Curry","Durrent&…
1.EF简介 EF之于Linq,EF是一种包含Linq功能对象关系映射技术.EF对数据库架构和我们查询的类型进行更好的解耦,使用EF,我们查询的对象不再是C#类,而是更高层的抽象:Entity Data Model,这提供了额外的灵活性,但在性能和简单性上面也会有所损失. EF的优点:在数据库架构和实体类之间的映射提供了更好的灵活性,还通过程序支持除了SqlServer之外的数据库. Linq To Sql之于EF Linq To Sql和EF师出同门,EF支持LINQ to SQL几乎同样的查…
在我的上一篇Java JDBC的基础知识(一)中,最后演示的代码在关闭资源的时候,仅仅用了try/catch语句,这里是有很大的隐患的.在程序创建连接之后,如果不进行关闭,会消耗更多的资源.创建连接之后的代码挂掉了,后面的try/catch很难保证代码被执行.所以,这篇Java JDBC的基础知识(二)主要记录标准的异常处理. 一.要处理的代码如下 import java.sql.Connection; import java.sql.DriverManager; import java.sql…
休息了两天,状态恢复了一下,补充点基础知识. 二叉搜索树 搜索树数据结构支持许多动态集合操作,包括Search,minimum,maximum,predecessor(前驱),successor(后继),INSERT和DELETE等.因此我们使用一颗搜索树既可以作为一个字典又可以作为一个优先队列.且二叉搜索树上的基本操作所花费的时间与这棵树的高度成正比.二叉搜索树有两个很重要的变体,红黑树与B树,这个我们之后有机会再补一篇文章. 顾名思义,一棵二叉搜索树是以一棵二叉树来组织的.如图所示,这样的一…
接上一篇  Ajax基础知识(一) 在上一篇博客里,抛弃了VS中新建aspx页面,拖个button写上C#代码的方式.使用ajax的方式,异步向服务器请求数据.我们让服务器只简单的返回一个"Hello World"字符串给客户端.实例代码也放出,但是对于掌握Ajax到底是个什么东西,还有些疑惑点.首先,那个JS函数GetInfoByAjax里面的XmlHttpRequest是个什么东西,为什么open里面放的是get,回调函数这些都是什么. 一.XmlHttpRequest 这是一个对…
接着上一章的内容:HTTP基础知识(一)   二.简单的HTTP协议 1.客户端:请求访问文本或图像等资源的一端称为客户端: 服务器端:提供资源响应的一端   2.以百度为例子 这是请求头: 在起始行开头的HTTP/1.1表示服务器对应的HTTP版本,GET表示请求的方法,第二行开始的就是内容实体. 请求报文详解  Header 解释 示例 Accept 指定客户端能够接收的内容类型 Accept: text/plain, text/html Accept-Charset 浏览器可以接受的字符编…
前面我们讲了一下XML相关的基础知识(一),下面我们在加深一下,看一下XML高级方面. 一.命名空间 1.命名冲突 XML命名空间提供避免元素冲突的方法. 命名冲突:在XML中,元素名称是由开发者定义的,当两个不同的文档使用相同的原俗名时,就会发生命名冲突.例如:下面这个XML文档携带者某个表格中的信息: <table> <tr> <td>Apples</td> <td>Bananas</td> </tr> </ta…
以下内容,作为python基础知识的补充,主要涉及基础数据类型的创建及特性,以及新数据类型Bytes类型的引入介绍…
这几天在回顾Android的基础知识,就把一些常见的知识点整理一下,以后忘了也可以翻出来看一看. 简单介绍一下Activity的生命周期 在API文档中对生命周期回调的函数描述的很详细,这里我只是翻译了一下. onCreate:当Activity第一次被创建的时候调运.应该在这个回调函数中做所有的初始化操作,比如:创建View,给lists绑定数据等.在这个函数执行完后,通常会调运onStart方法.Always followed by onStart()(这句就不用翻译了吧) onRestar…
1.2计算机组成及基本原理 1.2.1硬件组成 这里说的计算机主要指微型计算机,俗称电脑.一般我们见到的有台式机.笔记本等,另外智能手机.平板也算.有了一台计算机,我们就能做很多事情了,比如我在写这篇博客.那么一台计算机内部构造是什么样的?是怎么工作的呢?下面我就简单的阐述一下,尽量让大家能够快速.简单的了解. 记得笔者第一台电脑,是大学二年级的时候自己攒的,清楚的记得CPU是赛扬766,15寸的纯平显示器,整个宿舍只有我一台电脑,每天都可以玩拳皇97,无限怀念啊……,对不起,有点跑题了.那么问…
前言 之前对几个没什么理解,只是简单的用过可空类型,也是知道怎么用,至于为什么,还真不太清楚,通过整理本文章学到了很多知识,也许对于以后的各种代码优化都有好处. 本文的重点就是:值类型直接存储其值,引用类型存储对值的引用,值类型存在堆栈上,引用类型存储在托管堆上,值类型转为引用类型叫做装箱,引用类型转为值类型叫拆箱. 这一句话概括起来很简单,可是真正的理解起来却没那么简单,对于我来说吧. 值类型和引用类型 C#值类型数据直接在他自身分配到的内存中存储数据,而C#引用类型只是包含指向存储数据位置的…
一.基本概念 1:文档(document)是MongoDB中数据的基本单元,非常类似于关系型数据库管理系统中的行 2:集合(collection)可以看做是一个拥有动态模式(dynamic schema)的表 3:MongoDB的一个实例可以拥有多个相互独立的数据库,每一个数据库拥有自己的集合 4:每一个文档都有一个特殊的键"_id",这个键在文档所属的集合中是唯一的. 5:MongoDB自带JavaScript shell,可用于管理MongoDB的实例或数据操作   可以看两张图,…
这一节主要讲如何在手机端使用HTTP协议和服务器端进行网络交互,并对服务器返回的数据进行解析,这也是Android中最常用的网络技术. 一.WebView的用法 有时候我们可能会碰到比较特殊的需求,比如说要求在应用程序里展示一些网页,相信每个人都知道,加载和显示网页通常都是浏览器的任务,但是需求里又明确指出,不允许打开系统浏览器,而我们当然也不可能自己去编写一个浏览器出来,这时候该怎么办呢?为了解决这个问题,Android为我们提供了一个WebView控件,借助它我们就可以在自己的应用程序里嵌入…
一.基础数据类型 1.数字int 数字主要是用于计算用的,使用方法并不是很多,就记住一种就可以: #bit_length() 当十进制用二进制表示时,最少使用的位数 # -*- coding:UTF- -*- v = data = v.bit_length() print(data) # 二进制: # # 十进制: # #因为11小于16,而16占用5位.11最小占用应该为4位. 输出内容为:  2.布尔值 布尔值就两种:True,False.就是反应条件的正确与否. 真   1   True.…
本文发表于本人博客. 上次说了一些关于字符串的知识,都是比较基础的,那这次也说下关于对象地址问题,比如传参.先看下面代码: public void changeInt(int a){ a = ; } ; changeInt(a); System.out.println(a); 我相信这个初学者也知道结果了,知道传的是值.那看下这个说出过程是如何的: public void changestr(String str){ str = "www.luoliang.me"; } String…
一.基本概念 1. Java程序初始化的顺序是怎么样的 2. Java和C++的区别 3. 反射 先看一个知乎回答 什么是反射 主要用途 获得Class对象 4. 注解 什么是注解 为什么要用注解 基本Annotation 自定义注解类编写规则 自定义注解实例 5. 泛型 通俗解释 泛型方法 泛型类 类型通配符 6. 字节与字符的区别 7. 有哪些访问修饰符 8. 深拷贝与浅拷贝 9. Lamda表达式 语法 Lambda 表达式实例 变量作用域 10. 字符串常量池 11. 解释型语言与编译型…
一:前言 最近由于面试了新浪公司,面试官问我的问题我都不知道,觉得自己好菜,所以最近决定再把java基础给搞一遍,真的觉得自己好菜.每天看一点,那个家伙说<java编程思想>最少要看三遍,我一遍都没看完.现在每次都写写自己的最新指导的知识点吧.努力!!!刚刚在一个群上说了下这,别人给我说了句话“你要提醒自己,所有的技术别人能学会的你迟早能学会,没什么大不了的”.记住 二:内容 (1):关于构造方法的问题 我们每次写一个类中,都会说在类中加一个无参数的构造方法,我时常在想,这个无参数的构造函数有…
可以注册 IHttpClientFactory 并将其用于配置和创建应用中的 HttpClient 实例. 这能带来以下好处: 提供一个中心位置,用于命名和配置逻辑 HttpClient 实例. 例如,可以注册 github 客户端,并将它配置为访问 GitHub. 可以注册一个默认客户端用于其他用途. 通过委托 HttpClient 中的处理程序整理出站中间件的概念,并提供适用于基于 Polly 的中间件的扩展来利用概念. 管理基础 HttpClientMessageHandler 实例的池和…
一:引用 概念:是给一个已经存在的变量取一个别名,编译器不会为引用变量开辟内存空间,它和引用的变量公用一块内存空间. 例如: 类型& 引用变量名(对象名)= 引用实体 int& a = b; 引用类型必须和引用实体是同种类型的. 特性: 1. 引用在定义时必须初始化 2. 一个变量可以有多个引用 3. 引用一旦引用一个实体,再不能引用其他实体 引用适用场景: 1.做参数 void Swap(int& left, int& right) 2.做返回值 int& Tes…
1. 概述 css是英文Cascading Style Sheets的缩写,称为层叠样式表,用于对页面进行美化. 存在方式有三种:元素内联.页面嵌入和外部引入,比较三种方式的优缺点. 语法:style = 'key1:value1;key2:value2;' 行内式: 在标签中使用 style='xx:xxx;'单独加在某个标签上,style增加其他属性需要以分号分隔: <div style="background-color:darkgrey;height: 100px;width:10…
一. Java线程具有6种状态  NEW 初始状态,线程被创建,但是还没有调用start方法. RUNNABLE 运行状态,java线程将操作系统中的就绪和运行两种状态笼统的称作进行中. BLOCKED 阻塞状态,表示线程阻塞于锁. WAITING 等待状态,表示线程进入等待状态,进入该状态表示当前线程需要等待其他线程做出一些其它动作 TIME_WAITING 超时等待状态,该状态不同于WAITING,它是可以在指定的时间自动返回的 TERMINATED 终止状态,表示当前线程已经执行完毕 二.…
二.基本数据类型 java基本数据类型只能先声明后使用 boolean  true/false char 16-bit unicode character byte 8-bit integer short  16-bit integer int 32-bit integer long 64-bit integer float 32-bit floating-point number double   64-bit floating-point number 自动类型转换.强制类型转换 publi…
一.java基本数据类型 Java基本类型共有八种,基本类型可以分为三类,字符类型char,布尔类型boolean以及数值类型byte.short.int.long.float.double.数值类型又可以分为整数类型byte.short.int.long和浮点数类型float.double.JAVA中的数值类型不存在无符号的,它们的取值范围是固定的,不会随着机器硬件环境或者操作系统的改变而改变.实际上,JAVA中还存在另外一种基本类型void,它也有对应的包装类 java.lang.Void,…