2011-02-08 22 views
6

tengo las siguientes dos tablas:Código-primera referencia uno-a-muchos

LOCALIZACIÓN

Id      int 
Text     string 

DINER

Id      int 
Name     string 
Description   string 
Name_LocalizationID int 
Description_LocationID int 

Ahora quiero mi POCO así:

public class Diner{ 
    public int Id{get;set;} 
    public ICollection<Localization> NameLocalization{get;set;} 
    public ICollection<Localization> DescriptionLocalization{get;set;} 
} 

public class Localization{ 
    public int Id{get;set;} 
    public string Text{get;set;} 
} 

Pregunta es: ¿Cómo podemos mapear Nam Propiedad eLocalization y DescriptionLocalization a Id de localización con EF Fluent API? Gracias

Respuesta

3

SQL Server no admite múltiples eliminaciones en cascada, por lo que necesita para hacer uno de sus asociaciones opcional con el fin de derivar un esquema de SQL Server del modelo de objetos:

protected override void OnModelCreating(ModelBuilder modelBuilder) 
{ 
    modelBuilder.Entity<Diner>() 
     .HasRequired(diner => diner.NameLocalization) 
     .WithMany() 
     .IsIndependent() 
     .Map(s => 
     { 
      s.MapKey(localization => localization.Id, "NameLocalizationID"); 
     }); 

    modelBuilder.Entity<Diner>() 
     .HasOptional(diner => diner.DescriptionLocalization) 
     .WithMany() 
     .IsIndependent() 
     .Map(s => 
     { 
      s.MapKey(localization => localization.Id, "DescriptionLocationID"); 
     }); 
} 
0

no he probado este código, me temo, pero tal vez algo como:

modelBuilder.Entity<Diner>() 
    .HasRequired(diner => diner.NameLocalization) 
    .WithMany().IsIndependent() 
    .Map(s => { s.MapKey(localization => localization.Id, "Name_LocalizationID"); }); 

modelBuilder.Entity<Diner>() 
    .HasRequired(diner => diner.DescriptionLocalization) 
    .WithMany().IsIndependent() 
    .Map(s => { s.MapKey(localization => localization.Id, "Description_LocationID"); }); 
+0

siento que di navegaciones Comedor equivocadas. cuando ejecuté el código anterior, devolvió muchos registros, así que creo que necesito cambiar uno: uno a uno: muchos mapas. Así que mi clase comensal se verá así: Diner public class { public int Id {get; set;} pública ICollection NameLocalization {get; set;} pública ICollection DescriptionLocalization {get; set; } } ¿Podría decirme cómo puedo mapear esto usando Fluent o Anotación de datos? – sadhat75

Cuestiones relacionadas