我收到以下错误:
InnerException:{“无法将值NULL插入列'UserId',表'database.dbo.bp_UserDetails';列不允许空值.INSERT失败。语句已终止。”}
问题是UserId
值为12.
我的表定义为
CREATE TABLE [dbo].[bp_UserDetails](
[UserId] [int] NOT NULL,
[Name] [varchar](50) NULL.
// Other fields
CONSTRAINT [PK_bp_UserDetails] PRIMARY KEY CLUSTERED
(
[UserId] ASC
)
WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF,
ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
我的模特:
[Table("bp_UserDetails")]
public class UserDetails
{
[Key]
public int UserId { get; set; }
[DisplayName("Customer name")]
public string Name { get; set; }
}
我可能会收到此错误的任何想法?
答案 0 :(得分:1)
将DatabaseGeneratedOption
设置为None
以获取模型中的关键属性:
[Key, DatabaseGenerated(DatabaseGeneratedOption.None)]
public int UserId { get; set; }
如果不这样做,EF默认情况下会假定UserId
在数据库中作为标识列生成,并且永远不会将值发送到服务器。