visual tutorial studio framework first example español descargar code c# entity-framework foreign-keys entity-framework-6 self-reference

c# - tutorial - Cómo definir una referencia uno a uno utilizando primero el Código Entity Framework



entity framework descargar (1)

Quiero implementar el control de versiones en my entity Stuff . Cada entidad tiene una referencia opcional a la próxima versión (la última versión será nula) y una referencia opcional a la versión anterior (la primera versión será nula). Estoy usando entity framework 6, code first. Intenté con el siguiente modelo y declaración de modelbuilder (y muchas variaciones).

public class Stuff { public int StuffId { get; set; } [ForeignKey("NextVersion")] public int? NextVersionId { get; set; } [InverseProperty("PreviousVersion")] public virtual Stuff NextVersion { get; set; } public virtual Stuff PreviousVersion { get; set; } } modelBuilder.Entity<Stuff>().HasOptional(t => t.NextVersion).WithOptionalDependent(t => t.PreviousVersion);

Sin embargo, en este caso, se ignora [ForeignKey ("NextVersion")] y se genera una clave externa NextVersion_StuffId. ¿Cómo puedo indicarle a EF que use la propiedad NextVersionId como clave externa?


public class Stuff { public int Id { get; set; } public int? NextVersionId { get; set; } public int? PrevVersionId { get; set; } public virtual Stuff NextVersion { get; set; } public virtual Stuff PrevVersion { get; set; } }

Actualizado:

modelBuilder.Entity<Stuff>().HasOptional(t => t.NextVersion).WithMany().HasForeignKey(t => t.NextVersionId); modelBuilder.Entity<Stuff>().HasOptional(t => t.PrevVersion).WithMany().HasForeignKey(t => t.PrevVersionId);