0
我有以下幾點:插入新的父對象時,是否阻止EF添加新的子對象而不僅僅是關聯?
public int CreateExercise(Exercise newExercise) {
db.Exercises.Add(newExercise);
db.SaveChanges();
return newExercise.ExerciseId;
}
在哪裏練習如下:
public class Exercise {
public Exercise() {
Users = new Collection<User>();
}
[Key]
[Required]
public int ExerciseId { get; set; }
[StringLength(300, ErrorMessage = "The value cannot exceed 300 characters. ")]
public string Title { get; set; }
public virtual ICollection<User> Users{ get; set; }
}
當我創建一個新的練習,有時預先存在的用戶都用它,身份證包括在內。即使對這些Users
指定了現有的UserId
,也會在此處添加新的User
條目。我只想添加關聯,而不是新用戶 - 我會想象EF足夠聰明,能夠解決這個問題嗎?我究竟做錯了什麼?
我只是想避免讓所有附加到新練習的用戶循環,在Add
ing之前清除它們,確保它們存在,添加練習,然後添加每個單獨的用戶,最後調用SaveChanges
。
「運動」實例是如何創建和初始化的?英孚不會將相關項目添加到新實體,除非您確實會導致該項目。 –
@AndrewBarber從客戶端連同相關的預存用戶序列化 – SB2055
Ahh;我誤解了你。我手頭沒有,但這是做這樣的協會的問題。你正在做一個'Add()',所以除非你告訴EF一些不同的東西,否則它假定整個對象圖需要作爲新項添加到數據庫 - 如果那些其他實體沒有被跟蹤。有一些事情可以表明相關記錄不會被添加,但只是關聯......不記得正在進行...... –