我试图使用几个都遵循相同模型的表,这样最终如果我的应用程序比需要单个数据库更远,那么框架已经奠定了。
不支持每种类型的多个对象集。对象集'Entity'和'Reddit'都可以包含'Project.Models.Entity'类型的实例。
我知道这个错误来自我的dbcontect模型的这一部分:
public DbSet<Entity> Entity {get; set;} //local users
public DbSet<Entity> Reddit { get; set; } //users who registered through reddit
public DbSet<Entity> Twitter { get; set; } //user who registered through twitter
我似乎无法找到一种方法来完成这项工作。我知道现有的主题涵盖了为什么这是一个问题,但我似乎找到的唯一解决方案是“做好另一个数据库”虽然看起来很简单,但仍然没有真正解释问题或如何通过代码实际修复它。
(使用实体框架6)
答案 0 :(得分:0)
这是从问题中提取的。
我找到了解决方案并且它非常简单,我甚至感到惭愧,我甚至不得不问。
为每个表创建一个新的DBcontext 看起来像
RedditDB.cs
public RedditDB() : base("name=Database")
{
}
public DbSet<Entity> Reddit { get; set; }
TwitterDB.cs
public RedditDB() : base("name=Database")
{
}
public DbSet<Entity> Twitter{ get; set; }
并在控制器中放入
RedditDB _RDB = new RedditDB();
TwitterDB _TDB = new TwitterDB();
答案 1 :(得分:0)
使用继承来创建具有与现有实体相同属性的新类。
public class Twitter
{
public int Id { get; set; }
public string Title { get; set; }
public ICollection<EntityC> Lines { get; set; }
}
public class Reddit : Twitter
{
// leave this empty
}
这比使用单独的数据库上下文更好,因为它更容易查询单个上下文;您可以加入表格等。