我正在使用Entity Framework 6 Code First和一个空数据库。我已经创建了相当多的POCO类,它们具有相当复杂的类层次结构(相当多的抽象类和相当多的具体类)。我希望能够以某种方式装饰我的类,以便它们自动添加到DbContext而不必为每个显式创建DbSet属性,但我担心这会在我尝试更新数据库时导致问题。 我在这里看到了一些线程,其中有人似乎在问一个类似的问题,但响应似乎更适合使用DbContext.Set()来获取对现有集合的引用。
答案 0 :(得分:2)
如果您依赖于代码优先迁移,那么是的,EF会在DbContext
上使用反射来发现要创建的表。每个DbSet
属性都映射到数据库中的表。
答案 1 :(得分:1)
我发现我不需要为每个类的DbContext添加显式DbSet属性,因为EF会自动将所有相关类添加到模型中。
我可以懒惰,只为某些类添加显式属性,然后使用DbContext.Set<>()方法引用任何其他类:
var q = from x in myContext.Set<myClass>() select x;