2017-02-18 2 views
1

Sagen, ich habe zwei Modelle - House und UserEntity Framework-Code Erste - Definining zwei verschiedenen Beziehungen

class User 
{ 
    [Key, Required] 
    public Guid UserId { get; set; } 
    public virtual House ILiveHere { get; set; } 

    [Required] 
    public string Firstname { get; set; } 
    [Required] 
    public string Lastname { get; set; } 
} 

Und

class House 
{ 
    [Key, Required] 
    public Guid HouseId { get; set; } 

    [Required] 
    public virtual User HouseOwner { get; set; } 
} 

Viele Anwender können mit einem Haus verbunden werden, so dass es ein ein- ist zu-viele-Beziehung. Es gibt jedoch auch eine andere Beziehung, die eine Eins-zu-Eins-Beziehung zwischen dem Eigentümer des Hauses und dem Haus ist. Wie würden Sie dies mit Datenanmerkungen definieren? Dank

Antwort

1

Probieren Sie diese ... (dies ist EF-Core)

public class MyDbContext : DbContext 
{ 
    public DbSet<User> Users { get; set; } 
    public DbSet<House> Houses { get; set; } 

    protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder) 
    { 
     optionsBuilder.UseSqlServer(@"..."); 
    } 

    protected override void OnModelCreating(ModelBuilder modelBuilder) 
    { 
     modelBuilder.Entity<House>().HasMany(x => x.Residents).WithOne(x => x.House); 
    } 
} 

public class User 
{ 
    [Key, Required] 
    public Guid UserId { get; set; } 
    public virtual House House { get; set; } 

    [Required] 
    public string Firstname { get; set; } 
    [Required] 
    public string Lastname { get; set; } 
} 

public class House 
{ 
    [Key, Required] 
    public Guid HouseId { get; set; } 

    public List<User> Residents { get; set; } 

    [Required] 
    public virtual User HouseOwner { get; set; } 
} 
Verwandte Themen