Asp.net 如何使用实体框架和事务插入属性多对多关系
我有一张桌子Applicnt- 身份证 名字 斯图西德-- 此外,我还有一张表格applicationlanguages 身份证 应用程序 LanguageID(多对多关系) 所以我的问题是,当我试图添加一个申请人和他的语言-不应该是在交易中,是正确的方式来做 提前谢谢你Asp.net 如何使用实体框架和事务插入属性多对多关系,asp.net,entity-framework,Asp.net,Entity Framework,我有一张桌子Applicnt- 身份证 名字 斯图西德-- 此外,我还有一张表格applicationlanguages 身份证 应用程序 LanguageID(多对多关系) 所以我的问题是,当我试图添加一个申请人和他的语言-不应该是在交易中,是正确的方式来做 提前谢谢你 public void AddApplicant(string FirstName, string LastName, int StatusId,int AddressId, List<int>SelectedL
public void AddApplicant(string FirstName, string LastName, int StatusId,int AddressId, List<int>SelectedLanguages)
{
Applicant newApplicant = new Applicant { Name = FirstName, LastName = LastName,AddressesId = AddressId,StatusesId=StatusId };
foreach (var item in SelectedLanguages)
{
newApplicant.Languages.Add(testEntity.Languages.Where(x=>x.id==item).FirstOrDefault());
}
testEntity.Applicant.Add(newApplicant);
testEntity.SaveChanges();
public void addapplicator(string FirstName、string LastName、int StatusId、int AddressId、ListSelectedLanguages)
{
申请人newapplicator=新申请人{Name=FirstName,LastName=LastName,AddressesId=AddressId,StatusesId=StatusId};
foreach(所选语言中的变量项)
{
添加(testEntity.Languages.Where(x=>x.id==item.FirstOrDefault());
}
testEntity.applicator.Add(新申请人);
testEntity.SaveChanges();
具有下一个型号:
public class Applicant
{
public int Id {get;set;}
public string Name {get;set;}
public virtual ICollection<ApplicantLanguage> Languages {get;set;}
}
public class ApplicantLanguage{
public int Id{get;set;}
[ForeignKey("Applicant")]
public int ApplicantId{get;set;}
public virtual Applicant {get;set;}
[ForeignKey("Language")]
public int LanguageId{get;set;}
public virtual Language {get;set;}
}
公共类申请人
{
公共int Id{get;set;}
公共字符串名称{get;set;}
公共虚拟ICollection语言{get;set;}
}
公共类应用程序语言{
公共int Id{get;set;}
[外国钥匙(“申请人”)]
public int applicationId{get;set;}
公共虚拟申请人{get;set;}
[外键(“语言”)]
public int LanguageId{get;set;}
公共虚拟语言{get;set;}
}
你可以加上“下一步做”
public void AddApplicant(string FirstName, string LastName, int StatusId,int AddressId, List<int>SelectedLanguages)
{
Applicant newApplicant = new Applicant { Name = FirstName, LastName = LastName,AddressesId = AddressId,StatusesId=StatusId };
newApplicant.Languages.Add(SelectedLanguages.Select(langId=>new ApplicantLanguage{Applicant = newApplicant, LanguageId = langId})
testEntity.Applicant.Add(newApplicant);
testEntity.SaveChanges();
}
public void addapplicator(string FirstName、string LastName、int StatusId、int AddressId、ListSelectedLanguages)
{
申请人newapplicator=新申请人{Name=FirstName,LastName=LastName,AddressesId=AddressId,StatusesId=StatusId};
newapplicator.Languages.Add(SelectedLanguages.Select(langId=>newapplicationlanguage{applicator=newapplicator,LanguageId=langId})
testEntity.applicator.Add(新申请人);
testEntity.SaveChanges();
}
看起来不错。有什么让你犹豫不决的吗?