如果我的一个或多个列是标识列,我需要将什么参数放入InsertOnSubmit(...)?

时间:2015-05-13 15:10:24

标签: c# sql asp.net asp.net-mvc linq

我的表格是用

创建的
CREATE TABLE orgs ( orgid int NOT NULL identity(1,1), orgname nvarchar (MAX) NOT NULL, PRIMARY KEY (orgid) );

和我反映它的C#类是

[Table(Name = "orgs")]
public class Organization
{
    public Organization()
    {

    }

    [Column(IsPrimaryKey=true)]
    public int orgid { get; set; }
    [Column]
    public string orgname { get; set; }
}  

然而,当我发出呼叫时

        PD.orgs.InsertOnSubmit(new Organization { orgname = newOrgName });

        try
        {
            PD.SubmitChanges();
        } // try submitting to db
        catch (Exception e)
        {
            return Content(e.Message, "text/html");
        }

我了解到

  

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

这让我感到困惑,因为我认为它等同于发出直接SQL命令

INSERT INTO orgs (orgname) VALUES ('something');

但是当我这样做时,我没有收到错误。

我有什么想法可以解决这个问题吗?

1 个答案:

答案 0 :(得分:0)

[Table(Name = "orgs")]
public class Organization
{
    public Organization()
    {

    }


    [Column(IsDbGenerated=true)]
    public int orgid { get; set; }
    [Column]
    public string orgname { get; set; }
} 

像这样更改你的课程并检查