Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public class Atendimento {
- public int ID { get; set; } // PK
- ...
- }
- public class CaixaTransacao {
- public int ID { get; set; } // PK
- public int AtendimentoID { get; set; } // FK to Atendimento
- ...
- }
- public class Atendimento {
- public ID { get; set; } // PK
- ...
- public virtual CaixaTransacao Transacao { get; set; }
- }
- HasOptional(x => x.Transacao)
- .WithRequired(x => x.Atendimento)
- public class Atendimento {
- public int ID { get; set; }
- ...
- public ICollection<CaixaTransacao> ListTransacao { get; set; }
- }
- HasMany(x => x.ListTransacao)
- .WithOptional()
- .HasForeignKey(x => x.AtendimentoID);
- public class Atendimento
- {
- public int Id { get; set; }
- public string Field1 { get; set; }
- public virtual CaixaTransacao CaixaTransacao { get; set; }
- }
- public class CaixaTransacao
- {
- public int Id { get; set; }
- public string Field2 { get; set; }
- public string Field3 { get; set; }
- // public int AtendimentoID { get; set; } // DELETE THIS ROW. See OnModelCreating
- public virtual Atendimento Atendimento { get; set; }
- }
- protected override void OnModelCreating(DbModelBuilder modelBuilder)
- {
- base.OnModelCreating(modelBuilder);
- // Primary keys
- modelBuilder.Entity<Atendimento>().HasKey(a => a.Id);
- modelBuilder.Entity<CaixaTransacao>().HasKey(c => c.Id);
- // Foreign Key
- modelBuilder.Entity<Atendimento>()
- .HasOptional(a => a.CaixaTransacao)
- .WithRequired(c => c.Atendimento)
- .Map(c => c.MapKey("AtendimentoId")); // here we show the column for FK
- }
- var q1 = db.Atendimentoes
- .Select(a => new
- {
- AId = a.Id,
- AField = a.Field1,
- CId = a.CaixaTransacao.Id,
- CField1 = a.CaixaTransacao.Field2,
- CField2 = a.CaixaTransacao.Field3
- }).ToList();
- SELECT
- [Extent1].[Id] AS [Id],
- [Extent1].[Field1] AS [Field1],
- [Extent2].[Id] AS [id1],
- [Extent3].[Field2] AS [Field2],
- [Extent3].[Field3] AS [Field3]
- FROM [sample].[Atendimentoes] AS [Extent1]
- LEFT OUTER JOIN [sample].[CaixaTransacaos] AS [Extent2] ON [Extent1].[Id] = [Extent2].[AtendimentoId]
- LEFT OUTER JOIN [sample].[CaixaTransacaos] AS [Extent3] ON [Extent1].[Id] = [Extent3].[AtendimentoId]
Add Comment
Please, Sign In to add comment