繁体   English   中英

如何添加到ICollection列表并将其保存到数据库而又不会出现对象处置异常? (实体框架)

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM