一些理解的笔记

/扩展:
//注意:添加数据库模型时候,一定要选择在连接字符串中包含敏感数据(就是密码啊什么的。)如果没有选择,连接字符串中没有密码,则得手动添加
//数据库和模型同步变化:双击数据库模型Model1.edmx ==》 空白处右击 ==》 选择:从数据库更新模型
//ORM三种创建方式:
//数据库优先(先创建数据库,再根据数据创建模型 ):添加=》新建项=》数据=》.net实体数据模型=》从数据库生成
//模型优先(先创建模型,再安装模型创建数据库):添加=》新建项=》数据=》.net实体数据模型=》空模板

//通俗的讲就是,由子类向父类转换是协变;由父类向子类转换是逆变。泛型也是一样。in(传入参数) 关键字表示可能逆变,out (输出参数)关键字表示可能协变。逆变和协变都是为类安全,安全不安,关键在使用谁父类?子类?
//扩展:
//微型ORM框架,比如:Dapper(针对sql server,高效率)/PetalPOCO(跨数据库),都是开源(不是简单的开发源代码,是有开源社区,有自由程序员相互交流,有一套活着的问答机制,使得项目不断的进步壮大),互联网更喜欢拥抱开源,没事多逛逛社区才能看到新技术
//基于互联网项目和基于企业内部的项目是不一样的。

//上下文,在MVC4_lx\Models\Model1.Context.tt
//上下文可以理解为一个数据库,通过这个数据库可以操作这个数据库中的表

AEntities a_context;
//表实例,在MVC4_lx\Models\Model1.tt

//:base调用父类构造函数

//codeFirst(代码优先)
//这个模式适合老项目,可以最少改动的把实现EF引入
//代码优先,不用数据库和模型,直接写代码,根据代码生成数据库和模型。
//这个方式有些麻烦,但可以跨数据库-------------------------------------------非常好,.net不用任何修改,换下连接字符串,就可以实现跨数据库,牛逼..
//数据库要启动TCP/IP通信协议,才可以通过IP访问数据库(默认是启动的),而Named Popes 协议就是微软直接的通信协议(也是默认启动),反正要明白能连接数据库是因为实现了特点的通信协议
//在web.fonfig中创建连接字符串
//1.手写数据模型,这样用已有的M_1.cs吧
//2.写上下文类,在里面修改父类方法指定连接字符串
//3.添加各种引用,(可以创建空模型自动添加引入,再把模型删除就OK了)
//4.new出上下文,通过.Database.CreateIfNotExists(); //创建数据库

//EF框架基本基础市场上大部分数据库

//增删改查的操作===》ObjectContext(DbContext)
//ObjectContext(DbContext)===>操作XML映射(实体O,表R,映射M)===》生成SQL脚本
//ObjectContext(DbContext)===>传入生成的脚本===》操作数据库
//所以ObjectContext(DbContext)就是一个中间执行的类,里面就包含着一个隐藏的驱动层,就是这驱动层使得EF有操作各种数据库的能力,最终调用的是ADO.net

//上下文的一种加载类数据的缓存,多个线程同时读取修改容易出问题,一般是这么处理的:
//web中一个请求用一个上下文
//winForm中最好是用using

//web中一个请求只用一个上下文:
public static AEntities myDbContext()
{
  //HttpContext本身就是保证安全线程,存在一个线程中存在一个HttpContext,其他线程的HttpContext是无法访问本线程的HttpContext,只有一个实例,所以就保证了上下文实例也是唯一的。
  AEntities context = HttpContext.Current.Items["myDbContext"] as AEntities; //获取实例中的上下文
  if (context == null)
  {
    context = new AEntities();
    HttpContext.Current.Items.Add("myDbContext", context);//没有上下文就给他加一个上下,这个和缓存保持登陆状态的办法是一个意思
  }
  return context;
}

时间: 2024-11-10 08:54:02

一些理解的笔记的相关文章

19.fastDFS集群理解+搭建笔记

软件架构理解 1FastDFS介绍 1.1什么是FastDFS FastDFS是用c语言编写的一款开源的分布式文件系统.FastDFS为互联网量身定制,充分考虑了冗余备份.负载均衡.线性扩容等机制,并注重高可用.高性能等指标,使用FastDFS很容易搭建一套高性能的文件服务器集群提供文件上传.下载等服务. FastDFS是一个开源的轻量级分布式文件系统,它对文件进行管理,功能包括:文件存储.文件同步.文件访问(文件上传.文件下载)等,解决了大容量存储和负载均衡的问题.特别适合以文件为载体的在线服

深入理解计算机系统笔记

我的博客上的比这个排版显示的更好一些,特别是图片 http://notelzg.github.io/2016/06/29/%E6%B7%B1%E5%85%A5%E7%90%86%E8%A7%A3%E8%AE%A1%E7%AE%97%E6%9C%BA%E7%B3%BB%E7%BB%9F%E6%80%BB%E7%BB%93/ 1. hello wordl 我们还是从hello world程序说起吧: #include <stdio.h> int main() { printf("hell

深入理解Bootstrap笔记

1.框架简介 2.CSS基本语法

深入理解bootstrap笔记:第二天

MD ,星期六.星期天在家闲了,今天才抽出空来看第二章,真心该打~不过看了之后,觉得收益蛮多的! 看了栅格这篇时,发现一个问题了,以前做自己的网站时,有的时候排版真心有问题,page21这里列排序:.col-md-push-*(*这里填写数字) 完全可以实现的嘛,还用什么float,真心觉的自己傻的不是一星半点的! 现在让我去做,保证bootstrap的栅格系统用的顺滑了! 越看越觉着bootstrap的用处太大,不同屏幕上用不同的栅格尺寸标准,就完成能实现.超小屏幕设备手机(<768px):.

CSS深入理解学习笔记之padding

1.padding与容器尺寸之间的关系 对于block水平元素:①padding值暴走,一定会影响尺寸:②width非auto,padding影响尺寸:③width为auto或box-sizing为border-box,同时padding值没有暴走,不影响尺寸. 对于inline水平元素:水平padding影响尺寸,垂直padding不影响尺寸,但是影响背景色.当垂直padding大到超出父容器,会影响scrollHeight. 2.padding负值和百分比值 关于padding负值:padd

C语言杂记 -- 简陋的&lt;深入理解计算机系统&gt;笔记

程序的表示 l 32位64位操作系统是由CPU寄存器的位数决定,即虚拟寻址的范围为2^32.2^64. l 字节的大端小端法是以字节为基本单位的:比如十进制的7在十六位机器上表示 · 地址 100 101 大端法 00000000 00000111 小端法 00000111 00000000 l 大部分编译器默认进行算数右移和用补码表示复数 l 对于移位k来说,实际移位量为k mod 2^w(w为所移动数据类型的位数) l 对于整型常量来说c编译器都是先将其看成正数,如果前面有 - 运算符则对其

深入理解bootstrap笔记:第一天

书中page1中提及:bootstrap在github上已经有5142个watch.64207个star.23019个fork,ok~what is the watch.star and fork? 经过小编一翻搜索:watch-关注,star-加星,fork-a copy of the code(复制一份),TMD 这英文真无语! 书中page3中提及:经常使用IDE的源码搜索功能,ok! what is IDE? 度娘如是说:IDE(Integrated Development Enviro

CSS深入理解学习笔记之relative

1.relative和absolute的相煎关系 限制作用:1限制left/top/right/bottom定位:2限制z-index层级:3限制在overflow下的嚣张气焰 relative和fixed限制作用:限制z-index层级 2.relative和定位 特性:1相对自行进行定位:2无侵入,不影响其他元素布局 top/bottom和left/right对立属性同时存在时的表现:top>bottom left>right 3.relative和层级 提高元素的层叠上下文 新建层叠上下

CSS深入理解学习笔记之line-height

1.line-height的定义 定义:两行文字基线之间的距离. 注:不同字体之间的基线是不同的. 2.line-height与行内框盒子模型 行内框盒子模型: ①内容区域(content area),是一种围绕文字看不见的盒子,大小与font-size有关: ②内联盒子(inline boxes),不会让内容成块显示,而是排成一行.如果外部含inline水平标签,则属于内联盒子:如果是个光秃秃的文字,则属于"匿名内联盒子": ③行框盒子(line boxes),每一行就是一个行框盒子