关于 Code First

第一感觉还是很新鲜的,你可以自由的控制数据结构。

比如,你想象oracle那样,给每个表增加4个字段,创建人,创建时间,更新人,更新时间。完全可以创建一个父类包含着四个属性(甚至可以把四个属性作为一个复杂类,在父类里声明一个对象成员),然后让所有的实体都继承这个类,这样ef自己生成的数据库表都会带有这4个字段

甚至,你可以把所有表共用的字段提取出来,比如id,name,code,全部放在父类里,这样子类看起来明了多了

当然,这好像有违poco的思想

 

不好的地方当然也很突出,如果在开发过程中,数据结构需要变动,只能手工修改,没有有效的监管很容易遗漏变动。或者删除数据库,重新创建,这也很扯,开发过程中一般都会产生一些调试用的数据,总是删数据库会很麻烦,除非让开发人员把所有的数据都保存起来

 

实体变动之后,运行程序会出错,不清楚ef是如何检测数据库的一致性的,只截获了几个sql

 

SELECT Count(*) FROM sys.databases WHERE [name]=N'mydb'

 

SELECT TABLE_SCHEMA SchemaName, TABLE_NAME Name FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_TYPE = 'BASE TABLE'

 

 

SELECT 
[GroupBy1].[A1] AS [C1]
FROM ( SELECT COUNT(1) AS [A1]FROM [dbo].[__MigrationHistory] AS [Extent1]
)  AS [GroupBy1]


 
SELECT TOP (1) 
[Project1].[C1] AS [C1], 
[Project1].[MigrationId] AS [MigrationId], 
[Project1].[Model] AS [Model]
FROM ( SELECT [Extent1].[MigrationId] AS [MigrationId], [Extent1].[Model] AS [Model], 1 AS [C1]FROM [dbo].[__MigrationHistory] AS [Extent1]
)  AS [Project1]
ORDER BY [Project1].[MigrationId] DESC

 

 

 

 

 

内部原理未搞清楚,以后再搞

转载于:https://www.cnblogs.com/yyjj/p/3683201.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/375942.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

灵悟礼品网上专卖店——新建数据库

一、小组成员: 洪雪意(产品负责人) 陈淑筠(Master) 二、组内人员任务情况 计划完成的任务的第三个模块:分析并建立数据库 已完成的任务: 任务的第三个模块: 陈淑筠(负责…

操作系统上机题目(多进程1)

1、创建1个子进程2、程通过管道与子进程连接 子进程的标准输出连接到管道的写端主进程的标准输入连接到管道的读端3、进程中调用exec(“echo”, “echo”, “hello world”, NULL)4、进程中调用read(0, buf, sizeof(buf)),从标准输入中获取子进程发送的字符串&…

Oracle数据库dmp文件Dos命令下导入导出

Oracle数据库dmp文件Dos命令下导入导出 2013-03-09 18:22:52| 分类: Oracle |举报|字号 订阅 数据导出: 一. 导出工具exp 他是操作系统下一个可执行的文件,存放目录/Oracle_Home/bin. exp导出工具将数据库中数据备份压缩成一个二进制系统文件,可以在不同的OS间迁…

c语言报错找不到标识符,error C3861: “_T”: 找不到标识符

头天好好的程序,第二天一早就报错,还是莫名其妙的错误:atlconv.h等头文件中的“_T” 报错,百思不得其解,各种搜索而不得,整个人都崩溃了。出问题一定是有原因的,后来冷静下来,缕缕思…

js 面向对象插件写法,还是很好理解的

/** * Created by jiangtao on 2015/5/12. * name jihe */(function () { function gather(msg) { //适应参数 if (msg) { if (msg.imgFile ! undefined) { this.imgFile msg.imgFile; }; if (msg.wechatAppid ! undefined) { this.wechatAppid msg.wechatAppid; }; }; this.…

操作系统上机题目(多进程2)

1、主进程创建2个子进程,主进程通过两个管道分别与两个子进程连接2、第一个子进程计算从1加到50的和,并将结果通过管道送给父进程3、第一个子进程计算从50加到100的和,并将结果通过管道送给父进程4、父进程读取两个子进程的结果,将…

JavaScript 的简介

JavaScript 是一种基于对象和事件驱动的脚本语言。JavaScript和HTML一起实现网页与客户端的交互,从而可以开发客户端的应用程序。JavaScript是通过潜入在标准的HTML文件中实现的,可以直接控制浏览器窗口个元素以及页面内容。JavaScript一个重要的功能就是…

c语言大乐透编译,Excel大乐透摇号vba代码分享,说不定就中百万了呢

大家好我是Excel从零到一,今天闲来无聊做了一套大乐透摇号程序的vba代码分享给大家来看下效果Excel大乐透摇号vba代码分享,说不定就中百万了呢Sub 摇号()Dim i, a, test, s(1 To 35) As IntegerFor i 1 To 5line1: test Application.WorksheetFunction…

操作系统上机题目(多线程1)

主线程创建10个子线程 第0个子线程计算从01加到10的和 - 第1个子线程计算从11加到20的和 … 第9个子线程计算从91加到100的和 2. 主线程归并10个子线程的计算结果&#xff0c;最终结果为5050 本题必须使用线程参数来完成 #include<stdio.h> #include<unistd.h> #i…

纸上谈兵: 堆 (heap)

纸上谈兵: 堆 (heap) 作者&#xff1a;Vamei 出处&#xff1a;http://www.cnblogs.com/vamei 欢迎转载&#xff0c;也请保留这段声明。谢谢&#xff01; 堆(heap)又被为优先队列(priority queue)。尽管名为优先队列&#xff0c;但堆并不是队列。回忆一下&#xff0c;在队列中&a…

C语言 取模运算 保证正数,c语言的取模运算

我们对C的%运算知多少呢&#xff1f;当是正整数时&#xff0c;可能大家都知道。例如&#xff1a;5%3等于2, 3%5等于3。当存在负数时呢&#xff1f;先看看例子&#xff1a;例一&#xff1a;int main(){int x;x -6%5; printf("%2d/n",x);x 6%-5; printf("%2d/n&…

操作系统上机题目(多线程2)

主线程创建4个子线程T1、T2、T3、T4&#xff0c;主线程在4个子线程退出后&#xff0c;才退出线程T1、T2、T3、T4的运行时代码如下&#xff1a; #include <unistd.h> // sleep函数声明在该头文件中void *T1_entry(void *arg) {sleep(2); // 睡眠2秒&#xff0c;不准删除…

图形GUI名称

15句柄图形(Handle Graphics)15.1图形窗的产生和控制(Figure window creation and control)clf 清除当前图close 关闭图形figure 打开或创建图形窗口gcf 获得当前图的柄openfig 打开图形refresh 刷新图形shg 显示图形窗15.2轴的产生和控制(Axis creation and control)axes 在任…

c语言编程非线性方程求解,c语言计算机编程三种方法求解非线性方程.doc

c语言计算机编程三种方法求解非线性方程.doc本 科 专 业 学 年 论 文题 目非线性方程求解比较姓 名 何 娟 专 业 计算机科学技术系 班 级 08 级本科(2)班 指 导 老 师 刘 晓 娜 完成日期 2010 年 11 月 21 日计算机学年专业论文 非线性方程求解- 1 -题 目非线性方程求解比较摘 …

最近用到这个强大的工具 PhysicsEditor (转)

今天收到PhysicsEditor作者发过来的license key&#xff0c;所以顺便把PhysicsEditor也尝试了一下。主要是尝试将PhysicsEditor与cocos2dx&#xff0c;box2d结合开发的一些步骤。之前大概网络检索了一下&#xff0c;知道PhysicsEditor的功能其实很简单。一句话就是给图片的边缘…

浅谈块级元素和内联元素的嵌套规则

1. 替换和不可替换元素 从元素本身的特点来讲&#xff0c;可以分为替换和不可替换元素。 a) 替换元素 替换元素就是浏览器根据元素的标签和属性&#xff0c;来决定元素的具体显示内容。 例如浏览器会根据<img>标签的src属性的值来读取图片信息并显示出来&#xff0c;而如…

如何更新Chrome

在浏览器的地址栏中输入chrome://help即可进行自动更新&#xff0c;如下图&#xff1a;

c语言用指针实现打开和关闭文件,我用rewind函数没把指针直到开始,关闭文件然后打开就行。帮忙看看...

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼高手啊&#xff0c;我试了&#xff0c;结果是回到文件头了&#xff0c;把123覆盖了&#xff0c;为ABC 但我这个程序就能直接不关闭文件而用rewind函数到开头&#xff0c;你帮忙看看&#xff0c; //二进制文件的输入输出--数据块的读…

最佳适应算法模拟内存分配

最佳适应算法 从全部空闲区中找出能满足作业要求的&#xff0c;且大小最小的空闲分区&#xff0c;这种方法能使碎片尽量小。 问题描述 Given five memory partitions of 100 KB, 500 KB, 200 KB, 300 KB, and 600 KB (in order), how would each of the first-fit, best-fit…

单片机c语言 i%3c%3c1,单片机C语言作业及上机习题及答案

《单片机C语言作业及上机习题及答案》由会员分享&#xff0c;可在线阅读&#xff0c;更多相关《单片机C语言作业及上机习题及答案(37页珍藏版)》请在人人文库网上搜索。1、第一次课熟悉winTC编译环境、熟悉C语言程序结构1.使用C 语言编译环境&#xff0c;输入下面的源程序。将你…