C# linq sql insert正在忽略主键的sql server默认值
我有一个表,主键字段有一个默认值newid()-->,它在每次插入记录时生成一个唯一的id。当我尝试从任何sql管理工具直接在数据库中插入记录时,它都能工作。但是,当我尝试使用C#linq sql insert时,会出现以下错误: 无法将值NULL插入列“”,表“”;列不允许空值。插入失败。声明已终止 既然我不希望主键中有正常的顺序int-id,为什么linq会忽略字段的默认值,有没有其他方法可以做到这一点 以下是插入的c#代码:C# linq sql insert正在忽略主键的sql server默认值,c#,sql-server,database,linq-to-sql,C#,Sql Server,Database,Linq To Sql,我有一个表,主键字段有一个默认值newid()-->,它在每次插入记录时生成一个唯一的id。当我尝试从任何sql管理工具直接在数据库中插入记录时,它都能工作。但是,当我尝试使用C#linq sql insert时,会出现以下错误: 无法将值NULL插入列“”,表“”;列不允许空值。插入失败。声明已终止 既然我不希望主键中有正常的顺序int-id,为什么linq会忽略字段的默认值,有没有其他方法可以做到这一点 以下是插入的c#代码: databaseDataContext db = new da
databaseDataContext db = new databaseDataContext();
order c = new order();
c.orderName = "Untitled";
c.orderStatus = "New";
db.orders.InsertOnSubmit(c);
db.SubmitChanges();
@dbugger提供的建议足够好了。但是,如果仍然需要在SQL中生成,请确保指定ID列(主键字段)具有IsDbGenerated属性以及IsPrimaryKey:
[Column(IsDbGenerated = true, IsPrimaryKey = true)]
@dbugger提供的建议足够好了。但是,如果仍然需要在SQL中生成,请确保指定ID列(主键字段)具有IsDbGenerated属性以及IsPrimaryKey:
[Column(IsDbGenerated = true, IsPrimaryKey = true)]
@dbugger提供的建议足够好了。但是,如果仍然需要在SQL中生成,请确保指定ID列(主键字段)具有IsDbGenerated属性以及IsPrimaryKey:
[Column(IsDbGenerated = true, IsPrimaryKey = true)]
@dbugger提供的建议足够好了。但是,如果仍然需要在SQL中生成,请确保指定ID列(主键字段)具有IsDbGenerated属性以及IsPrimaryKey:
[Column(IsDbGenerated = true, IsPrimaryKey = true)]
请显示代码。请先尝试更新模型,如果模型不起作用,请向我们提供引发异常的代码。是的,因为您使用的是GUID,在C#代码中生成它,并在插入之前将ID字段分配给它。@dbugger提出了一个很好的建议-我怀疑LINQ-SQL正在设置将空ID传递给SQL,这将阻止SQL使用默认值。在任何情况下,自行生成密钥意味着您不必返回数据库去查找它是什么-您可以在关系中使用它,等等。您可以提供代码或表结构的模型吗?请显示代码。请先尝试更新您的模型,如果模型不起作用,请向我们提供引发异常的代码。是的,由于您仍在使用GUID,请在C#code中生成它,并在插入之前将ID字段分配给它。@dbugger提出了一个很好的建议-我怀疑LINQ-SQL正在设置将空ID传递给SQL,这将阻止SQL使用默认ID。在任何情况下,自行生成密钥意味着您不必返回数据库去查找它是什么-您可以在关系中使用它,等等。您可以提供代码或表结构的模型吗?请显示代码。请先尝试更新您的模型,如果模型不起作用,请向我们提供引发异常的代码。是的,由于您仍在使用GUID,请在C#code中生成它,并在插入之前将ID字段分配给它。@dbugger提出了一个很好的建议-我怀疑LINQ-SQL正在设置将空ID传递给SQL,这将阻止SQL使用默认ID。在任何情况下,自行生成密钥意味着您不必返回数据库去查找它是什么-您可以在关系中使用它,等等。您可以提供代码或表结构的模型吗?请显示代码。请先尝试更新您的模型,如果模型不起作用,请向我们提供引发异常的代码。是的,由于您仍在使用GUID,请在C#code中生成它,并在插入之前将ID字段分配给它。@dbugger提出了一个很好的建议-我怀疑LINQ-SQL正在设置将空ID传递给SQL,这将阻止SQL使用默认ID。在任何情况下,您自己生成密钥意味着您不必返回数据库去找出它是什么-您可以在关系中使用它,等等。您可以提供代码或表结构的模型吗