当前位置: 首页 > 编程语言 > C#

实体框架4.3不创建数据库分享

时间:2023-04-10 10:41:44 C#

实体框架4.3不创建数据库我新建了一个项目,添加了最新的实体框架(4.3版本)。我像以前的EF版本一样创建了类和上下文。但是,在应该创建数据库的第一次运行时(在我的例子中是SQLServer2005),我收到以下错误:执行命令定义时出错。有关详细信息,请参阅具有以下内部异常的内部异常:无效的对象名称“dbo.__MigrationHistory”。据我了解,该表用于迁移,但如果没有数据库,则该表不存在。难道我做错了什么?更多信息:出于测试目的,我刚刚创建了一个类:publicclassTest{[Key]publicintTestId{get;设置;}公共字符串名称{get;设置;}}公共类上下文:DbContext{公共上下文():基础(“MyConnection”){}公共DbSet测试{得到;设置;}}更新1经过一些测试,我意识到该应用程序正在从visualstudio和visualstudio中断中抛出未处理的异常。System.Data.EntityCommandExecutionException是一个异常。一旦我忽略了这个期望并且没有停止代码执行,数据库就创建好了。更新2使用数据库几个小时后,我发现使用Enable-Migrations选项并从控制台更新数据库也解决了问题。它在应用程序启动之前创建数据库,并且不会在VisualStudio中中断。您可以尝试删除构造函数以使EF使用它的默认连接字符串。publicContext():base("MyConnection"){}如果失败,您可以尝试从包管理器控制台更新数据库并查看是否有任何进一步的信息。Update-Database-Verbose可能与您的情况无关,但在使用MvcMiniProfiler1.9时我遇到了同样的错误。如果您也在使用它,请确保通过注释掉以下行来关闭EF配置文件://MiniProfilerEF.Initialize();在MiniProfilerApp_Start中。对于遇到类似问题的其他人,我发现从包管理器控制台重新启用迁移在某些情况下可能会有所帮助。在执行此操作之前,请确保您拥有迁移配置的副本。Enable-Migrations-Force...只是为面临类似问题的任何人添加一个可能的答案(注意:这似乎是一个开放式的故事,因为迁移部分显然仍然存在一些错误)...这个链接是最接近的我需要使用EF4.3运行Update-Database时出错,因此,您需要做3件事(按此顺序-我的意思是现有项目):(均在PM控制台中)...如果您仍然在PM中遇到异常consolethis我知道这听起来很傻,但这是我的主要问题-我有一堆解决方案文件夹,上面的任何一个都会在解决方案文件夹中的项目上失败。但是,一旦我将项目移至根目录,一切正常(不再有异常,有或没有CLR打开或关闭的第一次机会异常)...希望这对某人有帮助编辑:如果您的数据模型项目(EFCF)是一个库-然后将该项目设置为PM控制台中的“默认项目”-并直接在该项目上运行上述所有内容(并在lib本身中创建迁移配置等)。否则它会失败(再次没有MigrationHistoryexception当你的模型是一个库-并且没有为它定义迁移,并且你在'主项目'上定义迁移)。编辑:您需要将lib(EF模型)和“启动”项目(调用它)移动到根目录中。以上就是C#学习教程的全部内容:entityframework4.3不创建数据库。如果对大家有用,需要进一步了解C#学习教程,希望大家多多关注。本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处: