EF Code First:仅设置外键(ID)并获取导航属性的空集合

时间:2016-09-20 16:00:36

标签: c# entity-framework code-first

感谢你的回复,更多的是克莱尔,我已经重新提出了如下问题:

 class Program
{
    static void Main(string[] args)
    {
        using (TestContext context = new TestContext())
        {
            var id = Guid.NewGuid();
            App app = new App() { Id = id };
            Build build = new Build()
            {
                Id = Guid.NewGuid(),
                AppId = id
            };
            context.Apps.Add(app);
            context.Builds.Add(build);
            context.SaveChanges();;
        }

    }
}

步骤1>保存数据

class Program
{
    static void Main(string[] args)
    {
        using (TestContext context = new TestContext())
        {
            var builds = context.Apps.FirstOrDefault().Builds;
            Console.Read();
        }
    }
}

步骤2>获取数据

{{1}}

var builds获取一个空值,当我检查数据库时,外键值保存得很好。

2 个答案:

答案 0 :(得分:1)

我的猜测是你正在使用预先加载并且没有为该属性指定Include()(可能),这看起来像

context.Apps.Where(...).Include(a => a.Builds).ToList()

或者您正在使用显式加载而且没有调用Load()(不太可能)。

答案 1 :(得分:0)

可能是您的本地EF没有使用App的新系列进行刷新。您可能需要从数据库中刷新App对象。

How to Refresh DbContext