Asp.net 无法将显式值插入标识列insert\u OFF
我已经在一个asp mvc项目上工作了几个星期。我已经通过linq使用实体插入和删除了数据库中的内容,没有问题。直到现在 我用默认布局创建了我的项目。所以在AccountController上,在用户注册后,我想在我的数据库中注册信息Asp.net 无法将显式值插入标识列insert\u OFF,asp.net,asp.net-mvc,linq,linq-to-entities,Asp.net,Asp.net Mvc,Linq,Linq To Entities,我已经在一个asp mvc项目上工作了几个星期。我已经通过linq使用实体插入和删除了数据库中的内容,没有问题。直到现在 我用默认布局创建了我的项目。所以在AccountController上,在用户注册后,我想在我的数据库中注册信息 Client: IdClient Name LastName 我通过表格询问此信息,并执行以下操作: Client client = new Client(); client.Name = model.Name; client.LastName = model.
Client:
IdClient
Name
LastName
我通过表格询问此信息,并执行以下操作:
Client client = new Client();
client.Name = model.Name;
client.LastName = model.LastName
storeDB.Clients.Add(client);
storeDB.SaveChanges();
Note that I'm not attempting to insert anything on the IdClient
The class looks like:
public class Client{
[Key]
public int IdClient {get; set;}
public string Name {get; set;}
public string LastName {get; set;}
}
我插入了其他表,没有问题,但这一个给我带来了一个:
当identity\u insert设置为OFF时,无法在表“Client”中为identity列插入显式值
异常详细信息:System.Data.SqlClient.SqlException:当identity_insert设置为OFF时,无法在表“Client”中为identity列插入显式值
我检查了一下,桌上的一切看起来都正常,身份只有IdClient!!有人知道我为什么会得到这个吗=我不认为这与我在AccountsController中插入的事实有任何关系,这没有意义
更新:我插入了另一个表,但它没有标记我该错误,我不明白…我创建了相同的表!我创建了一个数据库,只有一个名为CLIENT的表,但它不起作用!有人知道我在哪里可以找到问题吗=
-我不想在标识列中插入一个值,我尝试在显示表数据中添加一个新行,我手动在Name和Last Name中引入值,单击ENTER并创建了该行,但当我通过查询执行该操作时,它不允许我这样做
谢谢 检查映射类上的主键。它应该具有如下属性:
[Column(Storage="_LetterOID", AutoSync=AutoSync.OnInsert,
DbType="Int NOT NULL IDENTITY", IsPrimaryKey=true, IsDbGenerated=true)]
重要的位是IsDbGenerated=true。如果您的属性缺少该属性,则我们已找到错误!如果您使用的是设计器,只需重新生成此类(通过在设计器中删除表并从服务器资源管理器中删除它)
这为我解决了问题,以前有一次。正如安德烈所说,检查一下你的设计师。 编写两个表的脚本,并确认有效的表确实有标识列。 尝试为两个插入运行探查器,它们插入的所有列是否相同
需要更多信息来回答此问题。我不想插入键值,我也不想插入键值…答案是什么?让我查一查。我是用脚本而不是类创建的。使用EF图!!让我手动将其插入到show表数据中,这是否意味着什么=s