我有以下表格定义(修剪):
CREATE TABLE `mt_user` (
`Id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`dtUpdated` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
`idUpdatedBy` int(10) unsigned NOT NULL,
`dtCreated` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,
`idCreatedBy` int(10) unsigned NOT NULL,
PRIMARY KEY (`Id`)
) ENGINE=InnoDB AUTO_INCREMENT=11 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
如您所见,没有为idUpdatedBy
和idCreatedBy
分配默认值。
尝试从工作台插入一行时,它会失败(因为我没有提供idCreatedBy
或idUpdatedBy
)。
这是正确的行为。
另一方面,如果我使用一个简单的表单来使用Entity Framework进行插入,那么这些字段将填充0
值,即使我没有定义默认值(在实体框架中也没有)。 / p>
我希望Entity Framework能够使插入失败并抛出关于idUpdatedBy
/ idCreatedBy
没有值的错误。
有人可以解释这种行为以及如何解决这个问题吗?