代码优先实体不包含一些必需的列?

时间:2015-06-04 18:19:11

标签: c# sql-server entity-framework ef-code-first entity-framework-6

我正在尝试使用EF6 Code First将域实体映射到旧SQL数据库。我没有权限修改数据库的架构或创建存储过程。我正在尝试映射的表包含一些我不希望混乱我的域实体的必需列,因为它们与我的程序无关(但它们被其他程序使用)。

问题是我的程序还需要能够向该表添加新行。当我的程序创建一个新行时,我有一组我应该用于这些额外列的值(这些值不是数据库默认值,而是特定于来自我的程序的新行)。我一直在尝试使用EntityTypeConfiguration映射所有列,但我找不到为未映射列设置默认创建值的方法。

有没有办法让EF6知道这些未映射的列并在INSERT上设置特定的默认值(但不能改变UPDATE上的现有值)?

1 个答案:

答案 0 :(得分:2)

您必须在模型中映射此列,如果您不映射这些属性,则无法创建默认值。你可以做的是在你的模型中将这个属性设置为私有,并使用反射在本博客http://romiller.com/2013/01/23/ef6-code-first-mapping-all-private-properties-using-custom-conventions/中描述具有实体框架的地图。