我想先使用EF代码。
我看过这篇文章:
并创建了我的BL类
public class AppData
{
public string Id { get; set; }
public string Url { get; set; }
public AppData_OptionsDialog OptionsDialog { get; set; }
public AppData_Compatibility Compatibility { get; set; }
}
public class AppData_Compatibility
{
public int Id { get; set; }
public string Platform { get; set; }
public string MaxVersion { get; set; }
}
public class AppData_OptionsDialog
{
public int Id { get; set; }
public string DisplayName { get; set; }
public string AppDesc { get; set; }
public string PrivacyPolicyUrl { get; set; }
public string TermsOfUseUrl { get; set; }
}
public class AppsDataContext : System.Data.Entity.DbContext
{
public AppsDataContext() : base("MaMDB") { }
public DbSet<Conduit.Mam.Common.BlData.AppsData.AppData> AppsData { get; set; }
public DbSet<Conduit.Mam.Common.BlData.AppsData.AppData_Compatibility> AppData_Compatibilities { get; set; }
public DbSet<Conduit.Mam.Common.BlData.AppsData.AppData_OptionsDialog> AppData_OptionsDialogs { get; set; }
}
我在数据库中创建了相应的表格。
我理解EF使用约定优于配置。
它是否会将类神奇地映射到数据库?无需生成em
我尝试对方法执行测试:
public IList<Conduit.Mam.Common.BlData.AppsData.AppData> GetAll()
{
var apps = from app in AppsDataContext.AppsData
select app;
return apps.ToList();
}
但收到以下错误:
在模型生成期间检测到一个或多个验证错误:
\ tSystem.Data.Entity.Edm.EdmEntityType:Name:a中的每个类型名称 架构必须是唯一的。类型名称'AppData_OptionsDialog'已经存在 定义。 \ tSystem.Data.Entity.Edm.EdmEntityType:Name:每个类型名称 在架构中必须是唯一的。类型名称'AppData_Compatibility'是 已定义。
我已经看到了这个答案,但它没有帮助我
Entity Framework error - "The EntityContainer name must be unique"
答案 0 :(得分:0)
我想我知道问题是什么,即使这个问题非常古老,我现在遇到同样的问题,但是当你有这个问题时,EF似乎并不喜欢它:
public class User_Roles {
public bool Admin { get; set; }
public bool Moderator { get; set; }
public virtual User User { get; set; }
}
public class User {
public Guid Id { get; set; }
public string Username { get; set; }
public string Salt { get; set; }
public string Password { get; set; }
public virtual User_Roles Roles { get; set; }
}
在这种情况下,需要重命名User_Roles或者需要重命名User中的Roles属性,如下所示:
public class URoles {
public bool Admin { get; set; }
public bool Moderator { get; set; }
public virtual User User { get; set; }
}
public class User {
public Guid Id { get; set; }
public string Username { get; set; }
public string Salt { get; set; }
public string Password { get; set; }
public virtual URoles Roles { get; set; }
}
或者您可以简单地更改&#34;角色&#34;用户中的财产:
public class User_Roles {
public bool Admin { get; set; }
public bool Moderator { get; set; }
public virtual User User { get; set; }
}
public class User {
public Guid Id { get; set; }
public string Username { get; set; }
public string Salt { get; set; }
public string Password { get; set; }
public virtual User_Roles URoles { get; set; }
}
在你的情况下,这发生在:
public AppData_OptionsDialog OptionsDialog { get; set; }
public AppData_Compatibility Compatibility { get; set; }
重命名该类,或重命名属性。