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

本文关键字:代码 实体 包含某 | 更新日期: 2023-09-27 17:53:18

我试图使用EF6代码首先映射域实体到一个遗留的SQL数据库。我没有修改数据库模式或创建存储过程的权限。我试图映射的表包含一些必需的列,我不想打乱我的领域实体,因为它们与我的程序不相关(但它们被其他程序使用)。

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

是否有办法使EF6意识到这些未映射的列,并在INSERT上设置特定的默认值(但不改变UPDATE上的现有值)?

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

你必须在你的模型中映射这些列,如果你不映射这些属性,你就不能创建默认值。你所能做的就是在你的模型和映射中设置这些属性为私有属性,就像这个博客http://romiller.com/2013/01/23/ef6-code-first-mapping-all-private-properties-using-custom-conventions/中使用反射所描述的那样。