我使用实体框架6代码优先空数据库。我已经创建了相当多的POCO类,它们具有相当复杂的类层次结构(相当数量的抽象类和相当多的具体类)。我希望能够以某种方式修饰我的类,以便它们自动添加到DbContext中,而不必为每个类创建DbSet属性,但是我担心这会在尝试更新时导致问题 - 数据库。 我在这里看到了一些线程,有人似乎在问一个类似的问题,但是响应看起来更像是使用DbContext.Set()获得对现有集合的引用。我必须在DbContext上创建显式的DbSet属性吗?
回答
我发现我不需要为每个类添加显式DbSet属性到DbContext,因为EF会自动将所有相关类添加到模型中。
我能偷懒,只对一些类中使用DbContext.Set <>()方法中添加明确的属性,然后引用任何其他类:
var q = from x in myContext.Set<myClass>() select x;
如果您依赖于代码优先迁移,那么是的,EF使用您的DbContext
上的反射来发现要创建的表。每个DbSet
属性都映射到数据库中的表。
非常感谢您的明确回答,尽管这非常令人失望。 – 2014-10-10 16:56:22
虽然,我想我可以创建一个部分类,使用DbSets生成我想...听起来很有趣:) – 2014-10-10 16:57:04
@MattKnowles - 不要低估代码生成的力量:)虽然我不确定努力是值得:“根据模型上的属性自动生成DbSet道具”与“只是在引入新模型时添加该属性” – 2014-10-10 17:21:40
- 1. EF 4.1:我需要将DbSet属性添加到DbContext吗?
- 2. AVAudioPlayer - 你必须创建一个属性才能工作吗? (Xcode)
- 3. 在Dapper DbContext,DbSet等
- 4. 属性值必须在@Retryable
- 5. 我必须在-dealloc中释放瞬态属性吗?
- 6. 我是否必须显式创建#temp表?
- 7. DbContext在访问基本属性时重写DbSet属性获取器
- 8. DbContext必须转换为System.Data.Entity.DbContext
- 9. 我必须手动释放声明为保留的属性吗?
- 10. ro.sf.lcd_density必须定义为构建属性
- 11. 导航属性可以有[必须]属性吗?
- 12. 从DbSet获取DbContext
- 13. 我可以在样式中创建自己的属性吗?
- 14. 为什么我必须在属性上实现set-method?
- 15. 在通过Git推送之前,我必须在github上创建文件吗?
- 16. 我想创建一个DeskBand。我必须使用C++吗?
- 17. 我可以通过LinqPad创建DbContext吗?
- 18. 为什么我的DbContext DbSet为null?
- 19. 上dbset动态查询中的DbContext类
- 20. NSNotification:对象属性必须是自我吗?
- 21. 我必须清理window.onunload事件上的自定义属性(Expandos)吗?
- 22. 您是否必须在VB.NET中显式创建表单实例?
- 23. 我必须为log4j中的所有类创建appender吗?
- 24. 我必须使用Cgo创建的免费结构吗?
- 25. 我必须显式关闭异步HTTP请求的ResponseStream吗?
- 26. 我必须显示其创建日期的数据库列表记录吗?
- 27. 带动态DbSet的DbContext
- 28. 我必须在Centos 7上创建网络控制器
- 29. .htaccess创建或修改:我必须重新启动Apache吗?
- 30. 在C#中,我是否必须执行显式上传?
能否请你添加一个链接你提到的文章? – elolos 2014-10-10 15:02:38
据我所知,答案是肯定的,你必须为每个POCO类添加一个'DbSet'属性。 – pquest 2014-10-10 15:08:44
为什么你担心这会导致问题?你总是可以试试你知道:) – 2014-10-10 15:14:16