EF core 学习笔记



应该 以领域 为核心开发程序, 不应该 以数据库

entityframeworkcore

entityframeworkcore.sqlserver

entityframeworkcore.tool









entityframeworkcore.tool很重要, 没有这句话,无法进行数据迁移. 数据迁移



get-help entityframeworkcore这句指令是万能 的,一有不会就要 点这个查询指令


数据迁移指令
1.Add-Migration Initial

2.Update-Database


开发环境的连接字符串写在这里



将web项目作为启动项目


控制台 设置Data





用cityid 和 companyid 做联合主键



用 fluent api 方式配置 主 外键







Int Id在数据库 默认为主键, 数据库会自增的。



这种写法 dbContext会自动 dispose的








批量操作,只能是1000条 命令最多




只有tolist的时候,才会真正的查询。 才会到数据库中 执行


查询的 linq 和lambda 写法 。




参数化使用lambda查询,



会执行查询的 lambda 方法



会执行查询的非 lambda的方法





用find 方法 查询 的好处 是 ,find 是dbset 的方法,如果dbcontent 有追踪该实体的话, 可以在内存中直接查,不需要 去数据库查询。

模糊查询的第1种方法



模糊查询的第2中方法



lastordefault 语句,必须要和 order by 配合。 因为 性能问题 。


修改这里




因为db2没有跟踪db1查询的查询出来的实体,所以叫做  修改离线数据

修改离线数据,会修改除了 id 主键以外的数据。



这个 没有讲,可以去官方文档看 。



省份表 和城市表 是通过 省份id这个外键关联起来的



//级联, 增加离线数据 ,必须使用外键!






where +tolist()的效果 ,等同于 firstordefault ()效果

查询关联数据 有这几种方法 :


1.预加载 ,在一次查询中 ,使用include属性。把 关联数据,一次性加载出来


2.查询映射   Query Projections


quick watch 是个 好东西,哈哈哈 。

使用 修改离线 的 关联数据时, 必须要用状态版,修改。


否则 在该 例子中, 修改成都的时候,vs 会顺便修改 四川省的其他 城市数据

3.显示加载,在内存中已经有 数据了,然后再数据库中 查询 关联数据



.net core 2.1的 知识



更改主键的修改,在数据库 ,就是先删除,后插入 。

主键为 guid 时,应该 这样写 修改


posted @ 2018-12-06 20:20  Hans.NET  阅读(974)  评论(0编辑  收藏  举报