【发布时间】:2012-12-20 15:15:35
【问题描述】:
我正在使用现有的 MSSQL 数据库构建一个 EF Code First 驱动的应用程序。我真的很想避免使用任何电动工具或基于向导的自动代码生成实用程序来构建我的模型和 dbcontext,因为我们需要完全控制代码生成。
我的问题是,当我构建模型时(在我的上下文中最终将作为 dbset() 属性),我应该如何处理模型中现有的 SQL 列?我是否需要为数据库中设置为“不可为空”的每个 db 列添加一个属性到我的模型类中?如果我在模型中遗漏了一些与 db 列相对应的属性,EF 会知道该怎么做吗?只是不确定这一切应该如何解决,并且在找到直接回答 CF 模型到现有数据库字段映射的资源时遇到了一些麻烦。有人有信息可以帮助澄清这个过程吗?
任何帮助将不胜感激,谢谢!
【问题讨论】:
-
我建议使用 EF Power Tools 将现有数据库逆向工程为 POCO 类,如果只是为了学习一些关于如何自己手动编码的提示/技巧。通过对我们的一个生产数据库进行逆向工程,我能够很好地掌握如何使用 Fluent API。
-
另外,有几种方法可以做你想做的事。我喜欢 Fluent API,因为我认为它最终变得更加干净/易于维护(您的模型和有关它的实现的细节是分开的)。许多其他人喜欢数据注释,因为它们更容易获取/使用,而且它们没有与模型分离。
标签: c# .net entity-framework ef-code-first dbcontext