C#工作单元执行不好

时间:2013-04-05 09:48:28

标签: c# entity-framework

我尝试使用SQLCE数据库实现工作单元。 一切都正常,除了一件事。

我有一个场景,患者可以执行不同的会话,每个会话都基于特定的测试。这些是实现:

public class Patient
{
    public int Id { get; set; }
    public byte[] IdentificationCode { get; set; }
    public string Sex { get; set; }

    public virtual List<Session> Sessions { get; set; }        
}

public class Session
{
    public int Id { get; set; }

    public Guid Unique { get; set; }
    public DateTime DateTime { get; set; }

    public virtual Patient Patient { get; set; }
    public virtual Test Test { get; set; }

    public virtual List<VideoExerciseResult> VideoSessionResults { get; set; }
    public virtual List<AudioExerciseResult> AudioSessionResults { get; set; }
}

public class Test
{
    public int Id { get; set; }
    public string Name { get; set; }

    public virtual List<Session> Sessions { get; set; }
}

当我执行测试时,数据实际上已保存,我可以直接查看会话的结果。

但是当我再次运行应用程序并加载会话时,结果和会话中的测试显示为空(而Patient,Id和Unique具有正确的值)。

private void GetSessionData()
    {
        // List<Test> tempList = new List<Test>(UOW.Tests.GetAll());
        // List<AudioExerciseResult> tempList1 = new List<AudioExerciseResult>(UOW.AudioSessionsResults.GetAll());

        switch (SelectedSession.Test.Name)
        {

我发现在调用Session对象之前加载数据库的测试和结果列表将使Session对象中的Test和Results的值正确显示。

在DB的世界中,显然有一些我不理解的东西。有人可以澄清为什么我必须加载数据库中的值列表吗?

我不清楚我会更准确地解释......

0 个答案:

没有答案