2

Не могли бы вы рассказать мне, как установить соотношение 1: 1 с приведенными ниже моделями, когда мы используем Asp.net Boiler plate? Заранее спасибо.Entity Framework с 1 по 1 отношения с плитой котла Asp.net

Примечание: Я видел this nice answer о EF 1 к 1 relationship.But, к сожалению, я не знаю, как установить его с котлом plate.B'cos PK автоматически взят из ABP.On мой сценарий где обе таблицы имеют int ПК.

Примечание 2: Здесь представлены модели собственности и адреса, имеющие отношение 1: 1.

Модель недвижимости

[Table("IpProperties")] 
    public class Property : FullAuditedEntity 
    { 

     public virtual bool Vacant { get; set; } 

     public virtual Address Address { get; set; } 

} 

Адрес Модель

[Table("IpAddresses")] 
    public class Address : FullAuditedEntity 
    { 

     [Required] 
     [MaxLength(MaxLength)] 
     public virtual string StreetNumber { get; set; } 

     public virtual Property Property { get; set; } 
    } 

ответ

1

отображение отношений должно быть сделано в OnModelCreating методе вашего DbContext. Ваш класс DbContext будет находиться в проекте EntityFramework в папке EntityFramework.

Вы можете использовать что-то вроде следующего:

protected override void OnModelCreating(DbModelBuilder modelBuilder) 
{ 
    base.OnModelCreating(modelBuilder); 
    modelBuilder.Entity<Property>().HasRequired(e => e.Address).WithOptional(e => e.Property); 
} 

Если Property свойство Address не должно быть пустым, метод .WithOptional() может быть заменен WithRequiredDependent() или WithRequiredPrincipal(), в зависимости от случая использования.

Другое решение:

ABP forum - REFERENTIAL INTEGRITY ISSUE - ONE TO ONE RELATIONSHIP

+1

Спасибо за поддержку :) – Sampath