如何在实体框架中为每个客户添加 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; }
通常,您使用主体类中的集合对 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();
引用:
关系约定