我将实体框架 5 与数据库优先方法一起使用。我创建了一个新的数据库表并更新了我的 .edmx。.cs 文件不是为我的 Model.tt 创建的,如此处所述,这是 VS 2012 中的一个错误。
我按照此线程中的说明进行了工作,最终更新到 VS2012.4。仍然没有为我的新表创建 .cs 文件,知道为什么会发生这种情况以及如何解决这个问题吗?
您的表必须具有创建 .cs 文件的主键。
我决定删除我的 edmx 文件并创建与数据库的新连接,但出现此错误:
连接失败,您的密码已过期
不用说,如果实体框架至少在从数据库更新我的模型时警告我我的密码已过期,而不仅仅是“更新”,就好像没有任何问题一样,那么可以节省很多时间。
所以我更新了我的密码,你猜怎么着,一切正常!
您是否使用可以将目录设置为只读的源代码控制系统?在自动化工具没有生成它们应该做的事情之前,我已经看到了这个问题。
如果您正在使用源代码管理,请检查整个目录,退出 VS。再次打开它并尝试再次生成。
无论有没有 .edmx 文件,我都遇到过这个问题,而且两次问题都是一样的。在 SQL Server 中创建和保存新表时,EF 无法看到它,直到您在对象浏览器中单击表 > 刷新。
我有一个类似的问题,结果是我的 .context.tt 文件和我的 .tt 文件对于 inputFile 字符串变量有错误的 .edmx 文件名。我相信这是因为有人在某个时候重命名了 .edmx 文件。