C# 双外键:C语言中的多重性错误#
我有一套实体框架拍卖。 每个拍卖对用户DB对象都有一个2外键。 [创建者(必需)和当前获胜者(可选)] 公共类用户数据库 { 。。。 } 有外键的代码:C# 双外键:C语言中的多重性错误#,c#,key,multiplicity,C#,Key,Multiplicity,我有一套实体框架拍卖。 每个拍卖对用户DB对象都有一个2外键。 [创建者(必需)和当前获胜者(可选)] 公共类用户数据库 { 。。。 } 有外键的代码: modelBuilder.Entity<AuctionDB>().HasRequired(a => a.Seller).WithMany(u => u.SellerOfAucts).HasForeignKey(a => a.SellerId).WillCascadeOnDelete(true);
modelBuilder.Entity<AuctionDB>().HasRequired(a => a.Seller).WithMany(u => u.SellerOfAucts).HasForeignKey(a => a.SellerId).WillCascadeOnDelete(true);
modelBuilder.Entity<AuctionDB>().HasOptional(a => a.WinnerUser).WithMany(u => u.WinnerOfAucts).HasForeignKey(a => a.WinnerUserId).WillCascadeOnDelete(false);
有什么帮助吗?谢谢你初始化你的收藏
public UserDB()
{
WinnerOfAucts = new List<AuctionDB>();
SellerOfAucts = new List<AuctionDB>();
}
public UserDB()
{
WinneRofacts=新列表();
SellerOfAucts=新列表();
}
[Key]
public int Id { get; set; }
public virtual UserDB WinnerUser { get; set; }
public virtual int WinnerUserId { get; set; }
public virtual int SellerId { get; set; }
public virtual UserDB Seller { get; set; }
modelBuilder.Entity<AuctionDB>().HasRequired(a => a.Seller).WithMany(u => u.SellerOfAucts).HasForeignKey(a => a.SellerId).WillCascadeOnDelete(true);
modelBuilder.Entity<AuctionDB>().HasOptional(a => a.WinnerUser).WithMany(u => u.WinnerOfAucts).HasForeignKey(a => a.WinnerUserId).WillCascadeOnDelete(false);
if (connectionString == null) throw new ArgumentNullException();
using (var db = new AuctionContext(connectionString))
{
try
{
db.Database.Delete();
db.Database.Create();
}
catch (SqlException)
{
throw new UnavailableDbException();}
public UserDB()
{
WinnerOfAucts = new List<AuctionDB>();
SellerOfAucts = new List<AuctionDB>();
}