使用ASP.NET Boilerplate时,如何与以下模型设置1:1关系?提前致谢。
注意1:我已经看到了关于EF一对一关系的一个很好的答案。但是不幸的是,我不知道如何使用ASP.NET Boilerplate进行设置,因为PK是由ABP自动设置的。在我的情况下,两个表都有int
PK。
注意2:此处,Property
和Address
模型具有1:1关系。
Property
模型:
[Table("IpProperties")]
public class Property : FullAuditedEntity
{
public virtual bool Vacant { get; set; }
public virtual Address Address { get; set; }
}
Address
模型:
[Table("IpAddresses")]
public class Address : FullAuditedEntity
{
[Required]
[MaxLength(MaxLength)]
public virtual string StreetNumber { get; set; }
public virtual Property Property { get; set; }
}
关系映射应在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
不应为null,则.WithOptional()
可以根据用例将方法替换为WithRequiredDependent()
或WithRequiredPrincipal()
。
另一个解决方案:
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句