Advertisement
Guest User

Untitled

a guest
Jun 20th, 2019
54
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.83 KB | None | 0 0
  1. public class Order : Entity
  2. {
  3. public Order(KitchenAppContext context) : base(context)
  4. {
  5.  
  6. }
  7. public Order() : base()
  8. {
  9.  
  10. }
  11. public DateTime Date { get; set; }
  12. public Guid MenuId { get; set; }
  13. public virtual Menu Menu { get; set; }
  14. public bool IsClosed { get; set; }
  15. public decimal Price { get; set; }
  16. public virtual int PeopleCount { get { return Details.Count; } }
  17. public virtual List<OrderDetail> Details { get; set; } = new List<OrderDetail>();
  18. }
  19.  
  20. public class OrderDetail : Entity
  21. {
  22. public OrderDetail(KitchenAppContext context) : base(context)
  23. {
  24.  
  25. }
  26.  
  27. public OrderDetail() : base()
  28. {
  29.  
  30. }
  31. public Guid UserId { get; set; }
  32. public virtual User User { get; set; }
  33. public virtual List<PaymentDetail> Payments { get; set; } = new List<PaymentDetail>();
  34. public virtual Order Order { get; set; }
  35. public Guid OrderId { get; set; }
  36. }
  37.  
  38. void OrderMapping(ModelBuilder builder)
  39. {
  40. var etBuilder = builder.Entity<Order>();
  41. etBuilder.HasKey(m => new { m.Id });
  42. etBuilder.HasOne(o => o.Menu).WithMany(a => a.Orders).HasForeignKey(f => f.MenuId);
  43. etBuilder.HasMany(o => o.Details).WithOne(d => d.Order).HasForeignKey(f => f.OrderId);
  44. }
  45.  
  46. void OrderDetailMapping(ModelBuilder builder)
  47. {
  48. var etBuilder = builder.Entity<OrderDetail>();
  49. etBuilder.HasKey(m => new { m.Id });
  50. etBuilder.HasOne(o => o.User).WithMany(u => u.Details).HasForeignKey(f => f.UserId);
  51. etBuilder.HasOne(o => o.Order).WithMany(u => u.Details).HasForeignKey(f => f.OrderId);
  52. etBuilder.HasMany(o => o.Payments).WithOne(d => d.OrderDetail).HasForeignKey(f => f.OrderDetailId);
  53. }
  54.  
  55. var order = new Order(Context);
  56. Context.Orders.Add(order);
  57. var oderDetail = new OrderDetail(Context) { Order = order };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement