[英]How do you add to an ICollection list and save it to a database without gettingan object disposed exception? (Entity Framework)
可以说我们有一个这样的类:
public class SampleClass
{
[Key]
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public int ID { get; set; }
public virtual ICollection<ScoreData> ScoreData{ get; set; }
}
还有另一个这样的类:
public class ScoreData
{
[Key]
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public int Id {get; set;}
public int subSectionScore {get; set;}
public int SampleClassID { get; set; }
public virtual SampleClass SampleClass { get; set; }
}
为什么这会引发对象处置异常,并且如何解决该异常?
internal static void CalculatesubSectionScores(ref List<SampleClass> sampleClassData)
{
foreach (var item in sampleClassData)
{
item.ScoreData= new List<ScoreData>();
/* code in second foreach accesses another objects item to
use for each sub sections calculations*/
foreach ()
{
var scoringData = new ScoreData();
var score = 0.0;
scoringData.subSectionScore = score;
item.ScoreData.Add(scoringData);
}
}
我已经从此类中删除了大多数逻辑,只是为了关注手头的问题。
在添加之前声明ScoreData
internal static void CalculatesubSectionScores(ref List<SampleClass> sampleClassData)
{
foreach (var item in sampleClassData)
{
item.ScoreData= new List<ScoreData>();
/* code in second foreach accesses another objects item to
use for each sub sections calculations*/
item.ScoreData = new List<ScoreData>(); // Add This Line
foreach ()
{
var scoringData = new ScoreData();
var score = 0.0;
scoringData.subSectionScore = score;
item.ScoreData.Add(scoringData);
}
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.