entity framework - many - Cómo mapear dos relaciones One or Zero to One
entity framework many to many (1)
Aquí es cómo lo haría sin la sintaxis de Fleunt. Tenga en cuenta los nuevos campos de identificación y que marqué las propiedades del álbum como virtuales
public class SellingRequest
{
public int Id { get; set; }
public int AlbumId {get;set;}
public virtual Album Album { get; set; }
}
public class MortgageAndRent
{
public int Id { get; set; }
public int AlbumId {get;set;}
public virtual Album Album { get; set; }
}
public class Album
{
public int Id { get; set; }
public int SellingRequestId { get; set; }
public int MortgageAndRentId { get; set; }
public virtual SellingRequest SellingRequest { get; set; }
public virtual MortgageAndRent MortgageAndRent { get; set; }
public virtual List<Photo> Photos { get; set; }
}
Tengo tres entidades con el nombre de SellinRequest, MortgageAndRent y Album. Cada uno de SellinRequest y MortgageAndRent puede tener un álbum.
public class SellingRequest
{
public int Id { get; set; }
public Album Album { get; set; }
}
public class MortgageAndRent
{
public int Id { get; set; }
public Album Album { get; set; }
}
public class Album
{
public int Id { get; set; }
public SellingRequest SellingRequest { get; set; }
public int SellingRequestId { get; set; }
public MortgageAndRent MortgageAndRent { get; set; }
public int MortgageAndRentId { get; set; }
public List<Photo> Photos { get; set; }
}
Esta es la lógica que quiero que se implemente:
- (SellingRequest 1 .... 0-1 Album)
- (MortgageAndRent 1 .... 0-1 Album)
Con estas asignaciones:
public class SellingRequestMap : EntityTypeConfiguration<SellingRequest>
{
public SellingRequestMap()
{
this.ToTable("SellingRequest");
this.HasKey(sR => sR.Id);
// Each SellingRequest may have one Album. (SellingRequest 1 .... 0-1 Album)
this.HasOptional(sR => sR.Album).WithOptionalPrincipal(a => a.SellingRequest).WillCascadeOnDelete(false);
}
}
public RentAndMortgageMap()
{
this.ToTable("MortgageAndRent");
this.HasKey(mR=>mR.Id);
// Each MortgageAndRent may have one Album. (MortgageAndRent 1 .... 0-1 Album)
this.HasOptional(sM => sM.Album).WithOptionalPrincipal(a => a.MortgageAndRent).WillCascadeOnDelete(false);
}
Pero no pude obtener el resultado. ¡No sé cómo relacionar estas dos tablas con la tabla de Álbumes!