繁体   English   中英

如何最好地手动使用Entity Framework Code First模型类处理现有数据库列映射?

[英]How best to handle existing database column mappings with an Entity Framework Code First model class manually?

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

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

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

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

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

到目前为止,这是我与EF合作并且没有问题的唯一方法。 如果对象上的属性为空,则EF会将空值写入数据库。 另外,您的所有列都无需在实体中表示(尽管显然所有必需的列都必须存在,或者如果要执行插入操作,则在数据库级别具有默认值)。 我认为很难找到有关此类问题的信息的原因是,这是ORM所做的事情,而且做得很好。 我建议您尝试创建和使用您的第一个实体,看看您遇到什么问题。 这可能比您现在所处的位置容易得多。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM