0
我有一個實體框架集拍賣。 每個拍賣都有一個2用戶DB對象的外鍵。 [創建者(必需)和當前的優勝者(可選)]雙重外鍵:C#中的多重性錯誤
....
公共類USERDB {
[Key]
public int Id { get; set; }
public virtual ICollection<AuctionDB> WinnerOfAucts { get; set; }
public virtual ICollection<AuctionDB> SellerOfAucts { get; set; }
... } 公共類AuctionDB {
[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);
項目口口聲聲說此錯誤消息: 設置: System.Data.Entity.ModelCongifuration.ModelValidationException:模型中檢測到一個或多個驗證錯誤代:
AuctionSite.AuctionDB_WinnerUser::多重性與'AuctionDB_WinnerUser'關係中角色'AuctionDB_WinnerUser_Target'中的參照約束衝突。 由於從屬角色中的所有屬性都是不可空的,所以主體角色的多重性必須爲'1'。
的問題是在db.Database.Delete()方法:
if (connectionString == null) throw new ArgumentNullException();
using (var db = new AuctionContext(connectionString))
{
try
{
db.Database.Delete();
db.Database.Create();
}
catch (SqlException)
{
throw new UnavailableDbException();}
任何幫助嗎?謝謝