我有2个表,两个主键都是自动生成的。
public partial class Responses
{
public Responses()
{
this.Answers = new HashSet<Answers>();
}
public int responseID { get; set; }
public System.DateTime create_dt { get; set; }
public virtual ICollection<Answers> Answers { get; set; }
}
responseID
是自动生成的主键
public partial class Answers
{
public int answerID { get; set; }
public int responseID { get; set; }
public int questionID { get; set; }
public string answer { get; set; }
public virtual Questions Questions { get; set; }
public virtual Responses Responses { get; set; }
}
我努力同时添加RESPONSE和ANSWERS
public void addAnswers(List<Answers> an)
{
Responses rp =new Responses();
rp.create_dttm = DateTime.Today;
db.Responses.Add(rp).Answers.Add(ans);
db.SaveChanges();
}
我想在插入Response
的同时添加答案,因为ResponseID
是自动生成的,我无法让ResponseID
将其与Answers
表关联。请注意,一个ResponseID
与多个问题相关联.......
提前致谢
答案 0 :(得分:0)
您的代码似乎没问题,除非您没有正确使用Add
。您应该使用foreach
循环添加Answers
集合的每个对象ans
:
foreach (var answer in ans)
{
rp.Answers.Add(answer);
}
此外,您应该尊重命名约定:您似乎经常使用复数,例如可能Responses
应该被命名为Response
,但我可能错了,这完全取决于你的实体的语义......