EF没有同步更新(转)

时间:2023-01-29 15:18:12

不知道这算不算一个bug,当你新建一个从数据库生成的edmx时,他能正确的生成所有的tt文件,但是当你从数据库更新表结构时,他不能正确的更新tt文件,以建立Model1.edmx为例,在解决方案中展开Model1.edmx,

  1. 右键Model1.Context.tt,然后点击运行自定义工具。
  2. 然后再右键Model1.tt,也点击运行自定义工。经过这两步,就会跟据edmx结构正确的生成文件了

还有种办法,执行以上第1步,第2步改为删除Model1.tt,在edmx设计器中右键-->添加代码生成项,选择数据-->EF 5.xDbContext生成器,名字和edmx取成一样就行了

不过我推荐使用第一种办法

当然,ef5没有抛弃ef4的Designer.cs,你也可以把Model1.Context.tt与Model1.tt全部删除掉,然后在edmx设计器中右键-->属性-->代码生成策略,他默认是无,你可以改成默认,再crtl+s保存后,你就会看到他会在designer.cs中生成ef4中看到的代码了,实体类也全在里面

以上为初次使用ef5遇到的问题,后面还会陆续的记录一些问题

2012-12-03续:升级到vs2012sp1过后,微软修复了此bug,更新或删除edmx表的同时会更新tt文件了