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

比如,你想象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

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

最新文章

  1. 【转】Caffe初试(九)solver及其设置
  2. 【荐】PDO防 SQL注入攻击 原理分析 以及 使用PDO的注意事项
  3. 修改SQL SERVER表,并添加说明
  4. CDH5X 安装oozie报错To enable Oozie web console install the Ext JS library.
  5. Camstar Portal modeling user guid --WorkCenter workCell workStation的关系
  6. Linux Windows 修改键盘映射
  7. @PathVariable注解
  8. CKPT进程工作机制
  9. lua函数
  10. Java中的String类
  11. CodeFile与CodeBehind的区别
  12. KendoUI 用下来的小总结
  13. c#Reverse字符串
  14. angularJs 个人初探笔记
  15. 玩转webpack(二):webpack的核心对象
  16. xtrabackup备份MySQL报错:InnoDB: Error number 24 means 'Too many open files'
  17. MySQL使用普通用户访问返回ERROR 1698 (28000): Access denied for user 'root'@'localhost'
  18. mysql Mac篇
  19. 成功清除 windows2008 内部版本7601 字眼
  20. Is this Sentence Difficult? Do you Agree? -paper

热门文章

  1. MergeRecord_C++中map的使用
  2. [转]quick-cocos2d-x 多分辨率适配详解
  3. MySQL 中的 FOUND_ROWS() 与 ROW_COUNT() 函数
  4. DFS HDOJ 2181 哈密顿绕行世界问题
  5. Android:学习AIDL,这一篇文章就够了(上)
  6. [转] Splay Tree(伸展树)
  7. SQL LEFT JOIN 关键字
  8. Scheme是什么、怎么自定义Scheme、JLRoutes的使用-备
  9. msxml 操作xml
  10. common常用方法和部分算法
  11. 基于4.5Framework web程序、SQLSERVER数据库打包
  12. ubuntu 18.04 配置远程ssh/远程ftp/远程vnc登陆
  13. 《Java编程思想第四版》第 16 章 设计范式-提到观察者模式
  14. 包建强的培训课程(17):Java代码敏捷之道
  15. Nginx 日志格式配置介绍
  16. 原生JavaScript运动功能系列(五):定时定点运动
  17. 我所知道的JS调试
  18. idea 与springboot 快捷键
  19. c/c++ 代码中使用sse指令集加速
  20. JDBC 与 Bean Shell的使用(二)获取值,并且断言