1

当我在 MVC DB 项目中添加新行时,我无法解决此错误,即使我看到人们之前已经使用 Linq 解决了这个问题。我没有使用 Linq,而是使用 EF。我有一个 MVC 项目,VS 2010,并通过设计器连接到 sql 2008

1)创建互联网项目2)右键单击模型->添加新项目-> ado实体数据模型并选择远程数据库。

3)创建控制器 4)运行项目并看到创建新行的屏幕。我这样做并在添加 2 行后出现此错误。我预先创建了表,并在 sql server 2008 中将 PK 定义为 Int

“/”应用程序中的服务器错误。当 IDENTITY_INSERT 设置为 OFF 时,无法在表中插入标识列的显式值。

我没有写任何代码,所以我不确定我还需要说什么

[Serializable()] [DataContractAttribute(IsReference=true)] 公共部分类视频:EntityObject { #region Factory Method

    /// <summary>
    /// Create a new video object.
    /// </summary>
    /// <param name="id">Initial value of the ID property.</param>
    public static video Createvideo(global::System.Int32 id)
    {
        video video = new video();
        video.ID = id;
        return video;
    }

    #endregion
    #region Primitive Properties

    /// <summary>
    /// No Metadata Documentation available.
    /// </summary>
    [EdmScalarPropertyAttribute(EntityKeyProperty=true, IsNullable=false)]
    [DataMemberAttribute()]
    public global::System.Int32 ID
    {
        get
        {
            return _ID;
        }
        set
        {
            if (_ID != value)
            {
                OnIDChanging(value);
                ReportPropertyChanging("ID");
                _ID = StructuralObject.SetValidValue(value);
                ReportPropertyChanged("ID");
                OnIDChanged();
            }
        }
    }
    private global::System.Int32 _ID;
    partial void OnIDChanging(global::System.Int32 value);
    partial void OnIDChanged();

    /// <summary>
    /// No Metadata Documentation available.
    /// </summary>
4

3 回答 3

1

请访问您模型的 .edmx 页面,然后选择身份列。打开属性窗口(按 F4)并将“StoreGeneratedPattern”属性设置为“Identity”。此属性确定数据库中的相应列是否将在插入和更新期间自动生成。

于 2012-12-02T19:08:47.843 回答
0

遇到同样的问题。我使用了 Flavia 的方法来解决这个问题。我尝试过的其他解决方案:1)将 identity_insert 设置为 on 2)刷新数据库模型

我使用了 asp.net MVC 5 EF(数据库优先)。我认为问题在于,我一遍又一遍地重建模型,并且我必须关闭该列的标识。

于 2015-01-23T19:06:10.823 回答
0

您可以发送数据库中表的脚本吗?可能没有在主键上设置身份列(身份增量/身份种子)

于 2012-12-01T18:54:20.633 回答