- 使用的框架:EF
- 框架集:.NET Framework 4.7.2
问题:System.Data.SqlClient.SqlException (0x80131904): 不能将值 NULL 插入列 ‘id’,表 ‘dbo.tx_plan’;列不允许有 Null 值。INSERT 失败。
这是因为字段设置的类型为
/// <summary>
/// 主键
/// </summary>
[Key]
public long Id { get; set; }
,新增记录时,自己在实体为Id赋值了,但是EF没有为Id列插入值,而是自动新增标识,也就是自增。但是数据库里面主键列又没有设置标识增量种子,EF生成的sql里面,id列丢失了,导致异常。
解决:
增加字段属性 [DatabaseGenerated(DatabaseGeneratedOption.None)],不让EF自动生成值
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace WuZiFenGongSiInfomation.Models
{
[Table("dept_task_plan")]
public class Dept_task_plan
{
/// <summary>
/// 主键
/// </summary>
[Key]
[DatabaseGenerated(DatabaseGeneratedOption.None)]
public long Id { get; set; }
}
}
转载
https://www.cnblogs.com/xiang-wei/p/9200562.html