我创建了一个 C# 类库,其中包含 3 个实体类和一个用于代码优先生成数据库的 DbContext。版本 1 一切顺利。我创建了一个单独的测试库,并且带有 DbContext 类的类库的行为符合预期。
现在,我想让其中一个字段成为必填字段,并遵循代码优先的约定,我在实体类的属性中添加了一个 [Required] 属性。下一步是启用迁移。
我去了包管理器控制台,输入“启用迁移”和......砰......“无法加载指定的元数据资源”。
作为参考,我的 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 信息相关的建议似乎并不向我申请。
请问有什么想法吗?