2
我正在使用ASP.NET和EF 6.1。我試圖用種子一些對象的數據庫,但我得到以下異常:無法投射異常類型對象
Unable to cast object of type 'System.Collections.Generic.HashSet`1[B]' to type 'B'.
當我嘗試創建一個使用用戶管理器的用戶。
所有的數據庫初始化都是在種子方法中完成的。我簡化了這些類,因爲其中有些參數很多。
public class User : IdentityUser
{
public User() : base()
{
Bs = new HashSet<B>();
}
public Guid AId { get; set; }
public virtual A A { get; set; }
public virtual ICollection<B> Bs { get; set; }
}
public class A
{
public A()
{
Bs = new HashSet<B>();
Users = new HashSet<User>();
}
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public Guid Id { get; set; }
public virtual ICollection<B> Bs { get; set; }
public virtual ICollection<User> Users { get; set; }
}
public class B
{
public B()
{
Users = new HashSet<User>();
}
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public Guid Id { get; set; }
public Guid AId { get; set; }
public virtual A A { get; set; }
public virtual ICollection<User> Users { get; set; }
}
protected override void Seed(myContext context)
{
var a = new A;
var b = new B;
A.Bs.Add(B);
context.As.Add(A);
var userStore = new UserStore<User>(context);
var userManager = new UserManager<User>(userStore);
var user = new User
{
UserName = "username",
A = a
};
userManager.Create(user, "password!");
user.Bs.Add(B);
base.Seed(context);
}
我一直在它的相當一段時間,真的不知道爲什麼這是行不通的。如果我不種子數據庫,沒有任何問題。在沒有創建用戶的情況下播種數據庫也不會給我帶來麻煩,但是一旦我嘗試創建用戶,就會發生這種情況。不要認爲它與這些關係如何結合在一起有什麼關係,我刪除了級聯刪除。