如何在实体框架中为每个客户添加 2 条地址记录

本文关键字:添加 客户 记录 地址 实体 框架 | 更新日期: 2023-09-27 18:36:02

我在一张表中有个人信息,在另一张表中有地址。地址可以是2条记录(家庭、工作)地址。我正在使用实体框架插入这些信息。不确定如何为1个个人信息插入2个地址。

这是我在存储库中插入个人信息的方法:

  public void InsertApplication(PersonalInfo personalInfo)
    {   
       creditApplicationsContext.PersonalInfos.Add(personalInfo);
    }

在个人信息类中,我有地址数,因此如果设置为 2 意味着我有 2 个地址供该客户使用。

public class PersonalInfo 
{
    public int Id { get; set; }
    public string Name{ get; set; }
     .....
    public int numberofaddresses{ get; set; }
  } 

此方法是在存储库中插入地址:

  public void InsertAddress(Address address)
    {
        creditApplicationsContext.Addesses.Add(address);
    }

这是地址类:

public class Address 
{
    public int Id { get; set; }

    public int ApplicantId { get; set; }                            

    public Applicant ApplicantTypeRef { get; set; }       

    public bool IsCurrentResidence { get; set; }

    public bool IsPreviousResidence { get; set; }

    public string StreetNumber { get; set; }

    public string StreetName { get; set; }

    public string ApartmentSuite { get; set; }

如何在实体框架中为每个客户添加 2 条地址记录

通常,您使用主体类中的集合对 1..n 关系进行建模...

public class PersonalInfo 
{
    private ICollection<Address> _Addresses = new List<Address>()
    public int Id { get; set; }
    public string Name{ get; set; }
    public virtual ICollection<Address> Addresses 
    { 
       get { return _Addresses; }
       set { _Addresses = value}
    public int NumberOfAddresses
    { 
       get return Addresses.Count()
    }
} 

。和依赖类中的外键:

public class Address 
{
   public int PersonalInfoId {get; set;}
   public virtual PersonalInfo PersonalInfo {get; set;}
}

然后,您可以在PersonalInfo类中添加地址到集合...

personalInfo.Addresses.Add(address1);
personalInfo.Addresses.Add(address2);

。在将树添加到数据库之前

infoRepo.InsertApplication(personalInfo);
uow.SaveChanges();

。或者,您可以在添加地址之前在地址中设置外键:

infoRepo.InsertApplication(personalInfo);
address1.PersonalInfoId = personalInfo.Id;
address2.PersonalInfoId = personalInfo.Id;
addrRepo.InsertAddress(address1);
addrRepo.InsertAddress(address2);
uow.SaveChanges();

引用:

关系约定