原创作品,允许转载,转载时请务必以超链接形式标明文章 、作者信息和本人声明。否则将追究法律责任。 作者: 地址:
今天使用MVC开发,在某个模块做添加操作的时候报错:
当 IDENTITY_INSERT 设置为 OFF 时,不能为表 'TB_TABLENAME' 中的标识列插入显式值。
字面上理解该表的标识列设置成OFF了,就不能为该表的标识列指定显示值插入数据库,事实上我并没有指定,所以看了下该表对应的实体类的配置,如下:
///发现该类的标识列主键id 的 column 只是跟数据库字段绑定了,但是没有绑定为主键和标识列,加上之后再试一下就好了,如下:/// /// id /// [Column("ID")] public System.Int32 Id{get;set;}
///其实这些标记和java中的注解类似,既然id是序列,那么都要统统指定清楚,不然程序不知道接下来怎么保存,代码如下:/// /// id /// [Column("ID", ColumnType.IdentityAndPrimaryKey)] public System.Int32 Id{get;set;}
@Id @SequenceGenerator(name="generator",sequenceName="seq_article",allocationSize=1) @GeneratedValue(strategy=GenerationType.SEQUENCE,generator="generator") @Column(name="id",unique=true,nullable=false) public Long getId() { return id; }
作者:ch656409110 发表于2013-7-25 14:01:41
阅读:101 评论:0