假设我们有这样的类:
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);
}
}
}