如何防止实体框架在数据库优先方法中将空字符串转换为 null

问题描述

我必须在 oracle 数据库的不可为空的 varchar 字段中插入空字符串。 我尝试保存的对象的属性设置为空字符串,但是当我调用 SaveChanges 时,我收到一个错误,因为 EF 将我的空字符串转换为 null。 我知道,在代码优先的方法中,您可以使用 ConvertEmptyStringToNull=false:有没有办法使用 数据库优先 方法实现相同的行为?

解决方法

似乎在 Oracle 中(至少现在),空字符串被视为空字符串。 因此无法在 varchar 字段中保存空字符串。

注意:Oracle 数据库当前将长度为零的字符值视为空值。但是,这在未来版本中可能不再适用,Oracle 建议您不要将空字符串视为空字符串。

Source