使用带有标识列的EF添加新项目

时间:2012-11-08 11:59:10

标签: c# asp.net visual-studio-2010 entity-framework

如何在EF中添加一个新实体,其中Id列在数据库中定义为identity

我收到以下错误:

  

无法在表'AppsData'中为标识列插入显式值   当IDENTITY_INSERT设置为OFF时。

但我不能将Id设置为null,因为它是数据库中的int(甚至不可为空)

我的功能是:

    public Conduit.Mam.MaMDBEntityFramework.AppsData Add(Conduit.Mam.MaMDBEntityFramework.AppsData item)
    {   
        maMdbEntities.AddToAppsDatas(item);

        maMdbEntities.SaveChanges();

        return item;
    } 

3 个答案:

答案 0 :(得分:2)

如果使用除零之外的任何整数值设置Id,则删除该初始化或将其设置为零。

正如异常明确表示您的Id列有一个值,即标识列。

  

无法在表'AppsData'中为标识列插入显式值   当IDENTITY_INSERT设置为OFF时。

例外

  

字符串或二进制数据将被截断。声明一直如此   终止

仅在发送数据长度大于db table column datatype lenght。

时出现

答案 1 :(得分:2)

我必须在edmx中创建此属性identity

答案 2 :(得分:2)

字符串或二进制数据将被截断。声明已经终止。

这意味着:您希望在列中插入的数据多于列大小。增加db。中的列大小。