gpt4 book ai didi

entity-framework - EF6,代码优先,启用迁移, "Unable to load the specified metadata resource"

转载 作者:行者123 更新时间:2023-12-03 23:12:15 25 4
gpt4 key购买 nike

我创建了一个包含 3 个实体类和一个 DbContext 的 C# 类库,用于代码第一代数据库。版本 1 一切顺利。我创建了一个单独的测试库,并且带有 DbContext 类的类库的行为符合预期。

现在,我想让其中一个字段成为强制性的,并遵循代码优先约定,我在实体类的属性中添加了一个 [Required] 属性。下一步是启用迁移。

我转到包管理器控制台,输入“enable-migrations”并... bang ...“ 无法加载指定的元数据资源 ”。

作为引用,我的 DbContext 类包括:

public OrganisationsContext()
: base("Leegz_Entities_Organisations")
{
this.Configuration.LazyLoadingEnabled = false;
this.Configuration.ProxyCreationEnabled = false;
}

public DbSet<Organisation> Organisations { get; set; }
public DbSet<Member> Members { get; set; }
public DbSet<LeegzUser> LeegzUsers { get; set; }

我的 app.config 包含:
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<configSections>
<!-- For more information on Entity Framework configuration, visit http://go.microsoft.com/fwlink/?LinkID=237468 -->
<section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
</configSections>
<entityFramework>
<defaultConnectionFactory type="System.Data.Entity.Infrastructure.LocalDbConnectionFactory, EntityFramework">
<parameters>
<parameter value="v11.0" />
</parameters>
</defaultConnectionFactory>
<providers>
<provider invariantName="System.Data.SqlClient" type="System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer" />
</providers>
</entityFramework>
<connectionStrings>
<add name="Leegz_Entities_Organisations" connectionString="data source=NEIL-INSPIRON\NEILDEV;initial catalog=TheLeegz;integrated security=True" providerName="System.Data.SqlClient" />
</connectionStrings>
<appSettings>
<add key="Leegz.Entities.Organisations.DbSecuritySchema" value="Leegz.Entities.Organisations"/>
</appSettings>
</configuration>

我已经看到很多关于这个主题的话题,但他们似乎都在谈论 EDMX 模型文件的引用元素中的错误。但是,由于我使用的是代码优先,我没有模型(也许我在这里遗漏了一个步骤),所以我看到的与连接字符串中的 EDMX 信息相关的建议似乎没有向我申请。

有什么想法吗?

最佳答案

我有一个类似的问题,但结果不同。由于调试花费了太多时间,这里有一些提示。

  • “无法加载指定的元数据资源”。错误与您的连接字符串有关。
  • 首先检查您拥有所有实体的项目中的连接字符串。
  • 确保连接字符串用于 代码优先 方法而不是 模特第一 数据库优先 方法(例如见下文)。
  • 中重复这些步骤全部 解决方案中具有与 DbContext 相关的连接字符串的项目。
  • 然后,重试 Enable-Migrations命令,它应该可以正常工作。

  • 模型第一个连接字符串示例:
    <add name="MyContext" 
    connectionString="metadata=res://*/MyModel.csdl|res://*/MyModel.ssdl|res://*/MyModel.msl;provider=System.Data.SqlClient;provider connection string=&quot;data source=.;initial catalog=MY_DB;integrated security=True;MultipleActiveResultSets=True;App=EntityFramework&quot;"
    providerName="System.Data.EntityClient" />

    代码第一个连接字符串示例:
    <add name="MyContext" 
    connectionString="Data Source=.;Initial Catalog=MY_DB;Integrated Security=True;MultipleActiveResultSets=True"
    providerName="System.Data.SqlClient"/>

    关于entity-framework - EF6,代码优先,启用迁移, "Unable to load the specified metadata resource",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19818366/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com