4

我将 Entity Framework 6 Code First 与空数据库一起使用。我创建了相当多的具有相当复杂的类层次结构的 POCO 类(相当多的抽象类和相当多的具体类)。我希望能够以某种方式装饰我的类,以便它们自动添加到 DbContext 中,而不必为每个类显式创建 DbSet 属性,但我担心当我尝试更新数据库时这会导致问题. 我在这里看到了几个线程,其中有人似乎在问类似的问题,但响应似乎更适合使用 DbContext.Set() 来获取对现有集合的引用。

4

2 回答 2

2

如果您依赖于代码优先迁移,那么是的,EF 使用您DbContext的反射来发现要创建的表。每个DbSet属性都映射到数据库中的一个表。

于 2014-10-10T15:10:47.293 回答
1

我发现我不需要为每个类向 DbContext 添加显式 DbSet 属性,因为 EF 会自动将所有相关类添加到模型中。

我可以偷懒,只为某些类添加显式属性,然后使用 DbContext.Set<>() 方法引用任何其他类:

var q = from x in myContext.Set<myClass>() select x;
于 2015-10-15T16:48:26.287 回答