0

我在更新模型時遇到此錯誤我正在分享我的代碼,請告訴我最佳解決方案。實體框架:無法確定關係的主體結束。多個添加的實體可能具有相同的主鍵

門票詳細信息類別:

public class TicketDetail 
{ 
    [Key] 
    public int TicketDetailId { get; set; } 
    public int GenericOrderId { get; set; } 
    public int PartId { get; set; } 
    public int Quantity { get; set; } 
    public decimal? CustomerPrice { get; set; } 
    public string Status { get; set; } 

    [Timestamp] 
    public byte[] RowVersion { get; set; } 

    public virtual Part Part { get; set; } 
    public virtual Ticket Ticket { get; set; } 
} 

OrderDetailClass:

public class OrderDetail 
{ 
    [Key] 
    public int OrderDetailId { get; set; } 
    public int GenericOrderId { get; set; } 
    public int PartId { get; set; } 
    public int Quantity { get; set; } 
    public decimal? UnitPrice { get; set; } 
    public string Status { get; set; } 

    [Timestamp] 
    public byte[] RowVersion { get; set; } 

    public virtual Part Part { get; set; } 
    public virtual Order Order { get; set; } 
} 

Order類:

public class Order : GenericOrder 
{ 
    public virtual ICollection<OrderDetail> OrderDetails { get; set; } 
} 

票務類

public class Ticket : GenericOrder 
{ 
    public virtual ICollection<TicketDetail> TicketDetails { get; set; } 
} 

GenericOrderClass:

public abstract class GenericOrder 
{ 
    [Key] 
    public int GenericOrderId { get; set; } 
    public string ProcessId { get; set; } 
    public DateTime Date { get; set; } 
    public string FullName { get; set; } 
    public string Email { get; set; } 
    public string Company { get; set; } 
    public string Phone { get; set; } 
    public string Message { get; set; } 
    public decimal Total { get; set; } 

    [Timestamp] 
    public byte[] RowVersion { get; set; } 
} 

,這是我的互聯網搜索,但沒有找到任何解決方案來控制類代碼

TryUpdateModel(order); 
TryUpdateModel(ticket); 

try 
{ 
    order.Date = DateTime.Now; 
    ticket.Date = DateTime.Now; 
    order.ProcessId = DateTime.Now.Ticks.ToString().Substring(12, 6); 
    ticket.ProcessId = order.ProcessId; 

    //Add the Order 
    storeDB.Orders.Add(order); 
    storeDB.Tickets.Add(ticket); 

    //Process the order 
    cart.CreateOrder(order); 
    cart.CreateTicket(ticket); 

    // Save all changes 
    storeDB.SaveChanges(); 

    //return RedirectToAction("Complete", 
    // new { id = order.QuoteOrderId }); 
    TempData["OrderSuccess"] = "Your order has been submitted successfully with the Process ID " + order.ProcessId; 
    TempData["OrderId"] = order.GenericOrderId; 
    TempData["Email"] = order.Email; 

    return RedirectToAction("Confirm"); 
} 
catch (Exception e) 
{ 
    //Invalid - redisplay with errors 
    ModelState.AddModelError("", e.Message); 
    return View(order); 
} 

+0

'cart.CreateOrder'做什麼? –

+0

@GertArnold它將訂單詳細信息插入到數據庫中 – Anony

回答

0

嘗試保存訂單和工單並保存後,向其中添加詳細信息。

相關問題