应该 以领域 为核心开发程序, 不应该 以数据库
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 时,应该 这样写 修改