Guest User

Untitled

a guest
Jan 18th, 2018
74
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.54 KB | None | 0 0
  1. public class Atendimento {
  2. public int ID { get; set; } // PK
  3. ...
  4. }
  5.  
  6. public class CaixaTransacao {
  7. public int ID { get; set; } // PK
  8. public int AtendimentoID { get; set; } // FK to Atendimento
  9. ...
  10. }
  11.  
  12. public class Atendimento {
  13. public ID { get; set; } // PK
  14. ...
  15.  
  16. public virtual CaixaTransacao Transacao { get; set; }
  17. }
  18.  
  19. HasOptional(x => x.Transacao)
  20. .WithRequired(x => x.Atendimento)
  21.  
  22. public class Atendimento {
  23. public int ID { get; set; }
  24. ...
  25.  
  26. public ICollection<CaixaTransacao> ListTransacao { get; set; }
  27. }
  28.  
  29. HasMany(x => x.ListTransacao)
  30. .WithOptional()
  31. .HasForeignKey(x => x.AtendimentoID);
  32.  
  33. public class Atendimento
  34. {
  35. public int Id { get; set; }
  36. public string Field1 { get; set; }
  37.  
  38. public virtual CaixaTransacao CaixaTransacao { get; set; }
  39. }
  40.  
  41. public class CaixaTransacao
  42. {
  43. public int Id { get; set; }
  44. public string Field2 { get; set; }
  45. public string Field3 { get; set; }
  46.  
  47. // public int AtendimentoID { get; set; } // DELETE THIS ROW. See OnModelCreating
  48.  
  49. public virtual Atendimento Atendimento { get; set; }
  50. }
  51.  
  52. protected override void OnModelCreating(DbModelBuilder modelBuilder)
  53. {
  54. base.OnModelCreating(modelBuilder);
  55.  
  56. // Primary keys
  57. modelBuilder.Entity<Atendimento>().HasKey(a => a.Id);
  58. modelBuilder.Entity<CaixaTransacao>().HasKey(c => c.Id);
  59.  
  60. // Foreign Key
  61. modelBuilder.Entity<Atendimento>()
  62. .HasOptional(a => a.CaixaTransacao)
  63. .WithRequired(c => c.Atendimento)
  64. .Map(c => c.MapKey("AtendimentoId")); // here we show the column for FK
  65. }
  66.  
  67. var q1 = db.Atendimentoes
  68. .Select(a => new
  69. {
  70. AId = a.Id,
  71. AField = a.Field1,
  72. CId = a.CaixaTransacao.Id,
  73. CField1 = a.CaixaTransacao.Field2,
  74. CField2 = a.CaixaTransacao.Field3
  75. }).ToList();
  76.  
  77. SELECT
  78. [Extent1].[Id] AS [Id],
  79. [Extent1].[Field1] AS [Field1],
  80. [Extent2].[Id] AS [id1],
  81. [Extent3].[Field2] AS [Field2],
  82. [Extent3].[Field3] AS [Field3]
  83. FROM [sample].[Atendimentoes] AS [Extent1]
  84. LEFT OUTER JOIN [sample].[CaixaTransacaos] AS [Extent2] ON [Extent1].[Id] = [Extent2].[AtendimentoId]
  85. LEFT OUTER JOIN [sample].[CaixaTransacaos] AS [Extent3] ON [Extent1].[Id] = [Extent3].[AtendimentoId]
Add Comment
Please, Sign In to add comment