是否应在DbContext中定义嵌套类的DbSets?

时间:2016-10-20 11:02:27

标签: entity-framework entity-framework-6

请考虑以下代码:

public class MainObject
{
    public int Id { get; set; }
    List<NestedObject> NestedObjects { get; set; }
}

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

public class ExampleContext : DbContext
{
    DbSet<MainObject> MainObjects { get; set; }

    // Should it be here? Code works without it...
    // DbSet<NestedObject> NestedObjects { get; set; }
}

// ( ... )

var nestedFooObjects = exampleContext.Get<NestedObject>()
      .Where(obj => obj.Name == "foo").ToList(); // still works

我的印象是DBContext应该包含从代码直接访问的所有表。所以没有DbSet&lt; NestedObject&gt;它应该只能获取MainObjects然后在主要的内部查找NestedObjects。我的实验表明,情况并非如此。我想直接获得NestedObjects,如上例所示。在那种情况下:DbSet&lt; NestedObject&gt;完全定义?代码运行不是必需的......

0 个答案:

没有答案