插入一条记录时“无法修改列[列名= id]”

Posted

技术标签:

【中文标题】插入一条记录时“无法修改列[列名= id]”【英文标题】:"The column cannot be modified[ Column name = id ]" when insert one record 【发布时间】:2012-06-27 08:29:35 【问题描述】:

我已经在 windows phone 7 平台上创建了一个数据库。表之一定义如下。

[Table]
public class Playlist : BaseTable

    // Define ID: private field, public property, and database column.
    private int _id;

    [Column(DbType = "INT NOT NULL IDENTITY", IsDbGenerated = false, CanBeNull=false, IsPrimaryKey = true)]
    public int Id
    
        get  return _id; 
        set
        
            NotifyPropertyChanging("PlaylistId");
            _id = value;
            NotifyPropertyChanged("PlaylistId");
        
    
    // some other field
    //.......

我不希望字段“id”由 db 生成,因此“IsDbGenerated = false”,但插入一条记录时出现异常: db.Playlists.InsertOnSubmit(new Playlist Id = (int)DefalutPlaylist.Default, Name = "default playlist", Group = 0, Type = 0 );

它说“无法修改列[列名= id]”

谁能帮帮我...

【问题讨论】:

【参考方案1】:

在 DbType 中删除“INDENTITY”值如下:

[Column(DbType = "INT NOT NULL", IsDbGenerated = false, CanBeNull=false, IsPrimaryKey = true)]

干杯

【讨论】:

这在 WP8 中对我不起作用,我仍然得到这个异常......有什么想法吗?

以上是关于插入一条记录时“无法修改列[列名= id]”的主要内容,如果未能解决你的问题,请参考以下文章

golang修仙记之gorm

如何在提交按钮上多次单击时仅在数据库中插入一条记录

带有Python的Mysql无法插入具有自动增量ID的记录,为啥?

microsoft office professional PLUS 2010无法验证产品的许可,必须使用控制面板修

将MYSQL某一数据库中的多条记录批量插入到另一MYSQL数据库时,记录不存在则插入,存在则更新

在 CICS 中浏览 KSDS 时无法读取下一条记录