Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/341.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# 级联删除错误_C#_Entity Framework_Ef Code First - Fatal编程技术网

C# 级联删除错误

C# 级联删除错误,c#,entity-framework,ef-code-first,C#,Entity Framework,Ef Code First,我已经编写了一个带有级联删除的MVC5 Internet应用程序,并得到以下错误: Unable to cast object of type 'System.Collections.Generic.List`1[TestDeleteForeignKeyReferences.Models.Room]' to type 'TestDeleteForeignKeyReferences.Models.Room'. 这是我的上下文类: public class MyDatabaseContext :

我已经编写了一个带有级联删除的MVC5 Internet应用程序,并得到以下错误:

Unable to cast object of type 'System.Collections.Generic.List`1[TestDeleteForeignKeyReferences.Models.Room]' to type 'TestDeleteForeignKeyReferences.Models.Room'.
这是我的上下文类:

public class MyDatabaseContext : DbContext
{
    public DbSet<House> houses { get; set; }
    public DbSet<Room> rooms { get; set; }

    protected override void OnModelCreating(DbModelBuilder modelBuilder)
    {
        modelBuilder.Entity<House>()
            .HasOptional(x => x.rooms)
            .WithOptionalDependent()
            .WillCascadeOnDelete(true);
    }
}
这是我的房间等级:

尝试在以下创建代码处将房屋添加到数据库时出错:

db.houses.Add(house);
如果上下文类中没有OnModelCreating方法,则不会发生错误


可以为我提供一些帮助以使此代码正常工作。

您想创建一个一间房到多间房的关系,可选的principal house在room上是可选的。配置应该是这样的

    modelBuilder.Entity<House>()
        .HasMany(x => x.rooms)
        .WithOptional(x => x.house)
        .WillCascadeOnDelete(true);
db.houses.Add(house);
    modelBuilder.Entity<House>()
        .HasMany(x => x.rooms)
        .WithOptional(x => x.house)
        .WillCascadeOnDelete(true);