【问题标题】:Some stupid situation about PK in C#: MVC3 can't insert a new record with passed PK and try to insert NULL as Primary key关于 C# 中 PK 的一些愚蠢情况:MVC3 无法插入具有传递 PK 的新记录并尝试插入 NULL 作为主键
【发布时间】:2012-07-24 12:00:25
【问题描述】:

美好的一天。我有 MSSQL2008 数据库。我为现有表之一(VLAN)制作了一个合适的模型。

public DbSet<VLAN> VLANs { get; set; }

VLAN 模型有字段:

[Key][Required]
public int VLAN_ID { get; set; } //in the "VLAN" table it is PK
...

然后我尝试插入一个新值

_db.VLANs.Add(VLANToEdit); //<-- Here VLANToEdit has VLANToEdit.VLAN_ID == 144. No such data in the table
_db.SaveChanges(); //<--Here I got an exception.

MSSQL 无法将 NULL 值插入 VLAN_ID 字段。但为什么?我传递了一个实值但为空?怎么了?我收到以下消息:

“无法将值 NULL 插入 'VLAN_ID' 列,表 'VMMExt.dbo.VLANs';列不允许空值。INSERT 失败。\r\n语句已终止。”字符串

如果我删除 [Key] 属性,我会在其他地方收到关于 VLAN 表中缺少关键字段的错误。

如何解决这个问题并使用提供的主键值强制插入?

【问题讨论】:

标签: sql-server asp.net-mvc primary-key dbset


【解决方案1】:

感谢对本网站的深度搜索! 我在这里找到了它:C# .NET 4.0 MVC Inserting a record with primary key

只需在模型中添加一个属性:[DatabaseGenerated(DatabaseGeneratedOption.None)]

你可以删除我的问题。谢谢!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-04-10
    • 2016-03-20
    • 2023-03-19
    • 1970-01-01
    • 1970-01-01
    • 2014-04-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多