【问题标题】:Running update-database results in the error: "A file activation error occurred"运行 update-database 导致错误:“发生文件激活错误”
【发布时间】:2015-01-09 12:09:21
【问题描述】:

基本上,我创建了一个包含数据访问存储库的类库项目,供其他项目使用。 我添加了 EF6 包并启​​用了迁移。 我在 app.config 中的连接字符串如下所示:

  <connectionStrings>
    <add name="Pbn" connectionString="Data Source=(LocalDb)\v11.0;AttachDbFilename=|DataDirectory|\Pbn.mdf;Initial Catalog=LM.DataAccess;Integrated Security=True" providerName="System.Data.SqlClient" />
  </connectionStrings>

(项目名称为LM.DataAccess)。

当我运行 update-database 命令时,出现以下错误:

发生文件激活错误。物理文件名“\Pbn.mdf” 可能不正确。诊断并纠正其他错误,然后重试 操作。创建数据库失败。列出的一些文件名可能 不会被创建。检查相关错误。

这可能是什么问题?

【问题讨论】:

标签: database entity-framework visual-studio entity-framework-6


【解决方案1】:

这就是问题所在:

AttachDbFilename=|DataDirectory|\Pbn.mdf

这被解释为 \Pbn.mdf,它不存在。这是因为您没有设置 |DataDirectory|值,所以它是空白的。设置方法见here

【讨论】:

  • 我明白了。但是我在哪里更改数据目录?我的意思是,与 Web 项目不同,我的类库中没有 global.asax 文件(我通常会在其中放置它)。
  • 是的,但在控制台和 WinForm 应用程序中有一个 Program.cs。 WPF 有 App.xaml.cs,所以有适合每个人的东西!
  • 是的,但我的是一个类库,两者都没有。我尝试添加 Program.cs,就像控制台应用程序一样,但它没有被解雇。顺便说一句 - 对不起我的延迟回答,但我正在尝试你所说的一切:)
  • 你需要 a) 设置任何项目使用你的库 b) 在你第一次使用连接字符串之前的某个时间在你的库中设置它 c) 不要使用 |DataDirectory|!使用正确的路径!
猜你喜欢
  • 2022-08-24
  • 2019-04-27
  • 2021-12-24
  • 2019-10-27
  • 2012-05-08
  • 1970-01-01
  • 2016-05-18
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多