Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/302.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Asp.net MVC不支持每种类型的多个对象集_C#_Asp.net Mvc_Asp.net Mvc 4 - Fatal编程技术网

C# Asp.net MVC不支持每种类型的多个对象集

C# Asp.net MVC不支持每种类型的多个对象集,c#,asp.net-mvc,asp.net-mvc-4,C#,Asp.net Mvc,Asp.net Mvc 4,我是学习MVC的新手,我遇到了这个错误 不支持每种类型有多个对象集。对象集“checkAccounts”和“CheckingAccounts”都可以包含“MVC_ATM.ViewModels.CheckingAccount”类型的实例 对于这种错误,我看了类似的问题,但在我的代码中没有发现 DbContext public interface IApplicationDbContext { IDbSet<CheckingAccount> checkAccounts { get

我是学习MVC的新手,我遇到了这个错误

不支持每种类型有多个对象集。对象集“checkAccounts”和“CheckingAccounts”都可以包含“MVC_ATM.ViewModels.CheckingAccount”类型的实例

对于这种错误,我看了类似的问题,但在我的代码中没有发现

DbContext

public interface IApplicationDbContext
{
    IDbSet<CheckingAccount> checkAccounts { get; set; }

    IDbSet<Transaction> Transactions { get; set; }

    int SaveChanges();
}
public class ApplicationDbContext : IdentityDbContext<ApplicationUser>, IApplicationDbContext
{
    public ApplicationDbContext()
        : base("DefaultConnection", throwIfV1Schema: false)
    {
    }

    public static ApplicationDbContext Create()
    {
        return new ApplicationDbContext();
    }
    protected override void OnModelCreating(DbModelBuilder modelBuilder)
    {
        Database.SetInitializer(new MigrateDatabaseToLatestVersion<ApplicationDbContext, Configuration>());
        base.OnModelCreating(modelBuilder);

    }

    public IDbSet<CheckingAccount> checkAccounts { get; set; }

    public IDbSet<Transaction> Transactions { get; set; }

    public System.Data.Entity.DbSet<MVC_ATM.ViewModels.CheckingAccount> CheckingAccounts { get; set; }
}
公共接口IAApplicationDBContext
{
IDbSet检查帐户{get;set;}
IDbSet事务{get;set;}
int SaveChanges();
}
公共类ApplicationDbContext:IdentityDbContext,IAApplicationDBContext
{
公共应用程序上下文()
:base(“DefaultConnection”,throwifvv1schema:false)
{
}
公共静态应用程序上下文创建()
{
返回新的ApplicationDbContext();
}
模型创建时受保护的覆盖无效(DbModelBuilder modelBuilder)
{
SetInitializer(新的MigrateDatabaseToLatestVersion());
基于模型创建(modelBuilder);
}
公共IDbSet检查帐户{get;set;}
公共IDbSet事务{get;set;}
public System.Data.Entity.DbSet CheckingAccounts{get;set;}
}

您的问题不在于ASP.NET MVC,而在于实体框架。在数据库上下文中,有两个相同类型的数据库集

public IDbSet<CheckingAccount> checkAccounts { get; set; }
public System.Data.Entity.DbSet<MVC_ATM.ViewModels.CheckingAccount> CheckingAccounts { get; set; }
公共IDbSet检查帐户{get;set;} public System.Data.Entity.DbSet CheckingAccounts{get;set;}
您的问题不在于ASP.NET MVC,而在于实体框架。在数据库上下文中,有两个相同类型的数据库集

public IDbSet<CheckingAccount> checkAccounts { get; set; }
public System.Data.Entity.DbSet<MVC_ATM.ViewModels.CheckingAccount> CheckingAccounts { get; set; }
公共IDbSet检查帐户{get;set;} public System.Data.Entity.DbSet CheckingAccounts{get;set;}
只需删除其中一个。

在同一上下文中,不能有两个名称相同的类,即使名称空间不同。这里的关键字是相同的上下文。如果你有另一个背景,那就好了。这是因为即使使用代码优先的方法,EF也会在幕后创建一个EDMX文件。EDMX的规则是,在同一个EDMX中不能有两个同名的表。

在同一上下文中,即使名称空间不同,也不能有两个同名的类。这里的关键字是相同的上下文。如果你有另一个背景,那就好了。这是因为即使使用代码优先的方法,EF也会在幕后创建一个EDMX文件。EDMX的规则是,在同一个EDMX中不能有两个名称相同的表。

错误非常清楚地表明,您有两个属性可以在db上下文中包含相同类型的对象。这是不允许的。为什么有两个?错误很清楚地表明,您有两个属性可以在db上下文中包含相同类型的对象。这是不允许的。为什么你有两个?非常感谢你的回复!我移除了其中一个,它工作得非常好!但是为什么会发生这种情况呢?我以为你已经手工编写了ApplicationDbContext,所以答案应该是“因为你在那里放了两次”。但是如果它是由一个工具生成的,那么不幸的是我不知道:(我想我对数据库进行了更新,这是主要原因!!它在更新开始后自动生成了ApplicationDbContext!但是再次感谢您的回答,我很感激:)非常感谢您的回复!我移除了其中一个,它工作得非常好!但是为什么会发生这种情况呢?我以为你已经手工编写了ApplicationDbContext,所以答案应该是“因为你在那里放了两次”。但是如果它是由一个工具生成的,那么不幸的是我不知道:(我想我对数据库进行了更新,这是主要原因!!它在更新开始后自动生成了ApplicationDbContext!但是再次感谢你的回答,我很感激:)@Dodi82这回答了你的问题吗?如果是,请阅读@Dodi82这是否回答了您的问题?如果是,请阅读