A ver si pueden ayudarme con esta pequeña duda creando mi modelo Code First...
Quiero crear tres tablas. LoginWines, UsersWines y UserWines_LoginInfos.
Un mismo usuario puede estar relacionado con diferentes logins.
También quiero crear propiedades de navegacion en mis clases.
Creo que lo hago todo bien, pero... al recuperar un Login, en la propiedad User no me aparece los datos del usuario relacionado. ¿Qué hago mal?
Definición de las clases
Código:
public class LoginWine { [Key] [DatabaseGenerated(DatabaseGeneratedOption.Identity)] public Guid Id { get; set; } public string UserName { get; set; } public string Password { get; set; } //Puse este attribute porque sino me creaba un campo UserWine_Id en la tabla, cuando no debería existir eso. [NotMapped] public virtual UserWine User { get; set; } } public class UserWine { [Key] [DatabaseGenerated(DatabaseGeneratedOption.Identity)] public Guid Id { get; set; } public string Name { get; set; } public string LastName { get; set; } public virtual System.Collections.Generic.ICollection<LoginWine> LoginInfo { get; set; } }
Mi Clase Context
Código:
Bien, ahora al recuperar un login, debería aparecerme su propiedad User con los datos del usuario relacionado.public DbSet<CountryBase> CountriesBases { get; set; } public DbSet<Country> Countries { get; set; } public DbSet<LoginWine> LoginsWines { get; set; } public DbSet<UserWine> UsersWines { get; set; } protected override void OnModelCreating(DbModelBuilder modelBuilder) { modelBuilder.Entity<UserWine>() .HasMany(m => m.LoginInfo) .WithMany() .Map(m => { m.MapLeftKey("UserWine_Id"); m.MapRightKey("LoginInfo_Id"); m.ToTable("UserWines_LoginInfos"); }); modelBuilder.Entity<Country>().HasRequired(m => m.CountryBase).WithRequiredDependent().Map(m=>m.MapKey("CountryBase_Id")); base.OnModelCreating(modelBuilder); } public WineDbContext() : base() { } public WineDbContext(string connectionString) : base(connectionString) { } }
Código:
Por favor... si alguien me puede ayudar, se lo agradeceré. using (WineDbContext context = new WineDbContext()) { var login = context.LoginsWines.FirstOrDefault(); login.User ES NULL ¿POR QUÉ? }