4

我正在使用现有的 MSSQL 数据库构建 EF Code First 驱动的应用程序。我真的想避免使用任何电动工具或基于向导的自动代码生成实用程序来构建我的模型和 dbcontext,因为我们需要完全控制代码生成。

我的问题是,当我构建模型时(在我的上下文中最终将作为 dbset() 属性),我应该如何处理模型中现有的 SQL 列?我是否需要为数据库中设置为“不可为空”的每个 db 列添加一个属性到我的模型类中?如果我在模型中遗漏了一些与 db 列相对应的属性,EF 会知道该怎么做吗?只是不确定这一切应该如何解决,并且在找到直接回答 CF 模型到现有数据库字段映射的资源时遇到了一些麻烦。有人有信息可以帮助澄清这个过程吗?

任何帮助将不胜感激,谢谢!

4

2 回答 2

0

使用混合方法,从数据优先模型开始,然后使用代码优先方法添加新实体。

如果实体与其映射到的数据库实体不匹配,EF 将引发异常。

于 2012-12-20T15:36:09.430 回答
-2

这是迄今为止我与 EF 合作的唯一方法,并且没有遇到任何问题。如果对象的属性为空,EF 会将空值写入数据库。此外,您的所有列都不需要在您的实体中表示(尽管显然所有必需的列都需要存在,或者如果您想进行插入,则在数据库级别具有默认值)。我认为很难找到关于这类问题的一些信息的原因是这是 ORM 刚刚做的事情,而且做得很好。我建议尝试创建和使用您的第一个实体,看看您遇到什么问题。从你现在的立场来看,这可能会比看起来容易得多。

于 2012-12-20T15:36:19.137 回答