问题描述
我的数据库一张表中设置了id为主键,类型为tinyint,允许为空,并且是把它做为了一个自增的标识符,当我在vs2008中把表拖进来写好代码增加记录的时候出现了"服务器无法生成类型为“TinyInt”的主键列。"我查看了一下自动生成的代码如下[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_id",AutoSync=AutoSync.OnInsert,DbType="TinyIntNOTNULLIDENTITY",IsPrimaryKey=true,IsDbGenerated=true)]publicbyteid{get{returnthis._id;}set{if((this._id!=value)){this.OnidChanging(value);this.SendPropertyChanging();this._id=value;this.SendPropertyChanged("id");this.OnidChanged();}}}(注当我把数据库中id的由tinyint改为int时就不会出错);可我不想改数据库,大家帮个忙,帮我解决一下如何改
解决方案
解决方案二:
哦那上面id不允许为空哦,打错了
解决方案三:
建议你主键类型不要使用TinyInt要么换int要么换GuidLINQTOSQL貌似不支持TinyInt
解决方案四:
建议你主键类型不要使用TinyInt要么换int要么换Guid你用的,最多才能插入256条数据
时间: 2024-09-03 02:20:20