在老版本到ef里, migration历史表里面还保存着当时到迁移的快照, 创建迁移的时候还需要与数据库打交道. 这就是我上面提到的如果团队使用ef和源码管理的话, 就会遇到这个非常令人头疼的问题....很简单, context所追踪的model属性变化后, SaveChanges就会更新到数据库.
当然, 多个更新操作和插入等操作可以批量执行.
离线更新....插入关联数据有几种情况:
1.直接把要添加的Model的导航属性附上值就可以了, 这里的Department不需要写外键....看一下Sql:
这个过程一共分两步: 1 插入主表, 2,使用刚插入主表数据的Id, 插入子表数据.
2.为数据库中的数据添加导航属性....这时, 因为该数据是被context追踪的, 所以只需在它的导航属性添加新记录, 然后保存即可.
3.离线数据添加导航属性.
这时候就必须使用外键了.
预加载关联数据 Eager Loading.