C# 级联删除错误
我已经编写了一个带有级联删除的MVC5 Internet应用程序,并得到以下错误: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 :
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);