随笔分类 - entityFramework
摘要:ef中,savechanges() 默认使用事务. 可以看到一个事务把两个insert包起来 如果你想在一个事务中多次执行savechanges 你应该这样写
阅读全文
摘要:比如你有一个存储过程
阅读全文
摘要:假设你有一个表Authors ,主键是AuthorId 你想保存这个图,但是你指定了主键的值是1001,这里你不能直接savechanges,你应该首先打开IDENTITY_INSERT,保存后再删除 但是这时保存的数据的 id不是1001,而会是数据库identity生成的序号 解决的方法是派生一
阅读全文
摘要:何谓图,这里的图的意思不是png jpeg jpg gif,也不是地图 而是一种抽象的概念,表示实体之间的关系. 在数据库中这关系一般指的是主从表关系. datacontext.savechanges()可以保存图,但是需要加一点洗发水( 这里的洗发水是专业术语,根据语境可以翻译成特效,特别的处理,
阅读全文
摘要:datacontext会自动跟踪实体状态,当我们调用savechanges保存实体到数据库时,会用到跟踪状态. 但是某些情况下,实体 不在datacontext中,他们没有连接关系,比如:一个datacontext查询,别一个datacontext保存,这种情况下保存的datacontext不知道查
阅读全文
摘要:1.缘起 Exception: Store update, insert, or delete statement affected an unexpected number of rows (0) 当你遇到上面这些红字,说明你遇到了ef的并发问题. 当两个连接同时向数据库做了冲突的操作,比如一个连
阅读全文
摘要:默认情况下,ef在datacontext生命周期中跟踪已加载的实体 当操作数据库现有数据时,才会跟踪 如果在datacontext回收之前没savechanges,那么跟踪的状态就会丢失. 实体得要有主键属性才能跟踪 可以用下面的方法来跟踪datacontext的状态(Added Modified
阅读全文
摘要:authors表是主表 books表是子表 默认情况下,当使用datacontext.dbset.remove 删除authors时, 与之相关的books也会一起删除掉. 不过可以使用WillCascadeOnDelete(false)来关闭级联删除 这样再执行本随笔第一个代码段就不会删除与之相关
阅读全文
摘要:在ef中,CUD都使用Datacontext.SaveChange()进行保存. SavaChange方法在保存之前会自动调用DetectChanges方法检查DataContext中做了什么更改,以作出对应的数据库操作. create 增 dbcontext.dbset.add(model),然后
阅读全文