我在使用实体框架核心插入具有默认值列的记录时遇到了一个奇怪的问题。有没有其他方法来获得预期的行为,我是否错过了一些愚蠢的事情?
tldr:设置 int 属性 = 0 或 bool 为 true 会导致新字符串使用默认值 string.empty 给出 ORA-01400: 无法插入 NULL (这似乎是 Oracle 的事情)
场景:使用迁移添加新列并添加新记录会导致正常行为(插入默认值)
仅添加新记录提供的旧字段=确定
"ID" : 6, "OLDFIELD" : "ef test 1", "NEWINT" : 5, "NEWSTRING" : "def", "NEWBOOLFALSE" : 0, "NEWBOOLTRUE" : 1
添加与 .Net 默认值不同的值也有效
"ID" : 12, "OLDFIELD" : "ef test all set", "NEWINT" : 42, "NEWSTRING" : "string here", "NEWBOOLFALSE" : 1, "NEWBOOLTRUE" : 1
现在,当您为 int 指定 0 并为 bool 指定 false 时会出现问题
var test = new TestDef() …Run Code Online (Sandbox Code Playgroud)