【发布时间】:2017-05-20 10:26:24
【问题描述】:
感谢阅读,我正在使用 EntityFramework 并收到此错误消息
NotSupportedException:修改主键的表 列的属性 'StoreGeneratedPattern' 设置为 'Computed' 不是 支持的。请改用“身份”模式。关键列:'itemID'。 表:'DBEntities.Store.Item'。
单击包含此代码的按钮时产生的错误
db.Items.Add(new Item
{
name = tbxItemName.Text,
description = lblDescription.Text,
date = DateTime.Now
});
我相信这个错误可能是因为,从 SQL 端,我有这样的事情
CREATE TABLE Item
(
sno INT IDENTITY,
itemID as CAST('ITM' + REPLICATE('0', 4-len(sno)) + CAST(sno as VARCHAR) as CHAR(7)) PERSISTED NOT NULL PRIMARY KEY,
name VARCHAR(50) NOT NULL,
description VARCHAR(255),
date DATETIME NOT NULL
);
通常,我只是在 SQL 中插入值
INSERT INTO Item (name, description, date) VALUES ('Car','Volvo','2017-05-20 12:12:12);
物品类别
public partial class Item
{
public int sno { get; set; }
public string itemID { get; set; }
public string name { get; set; }
public string description { get; set; }
public System.DateTime date { get; set; }
}
您认为错误是因为 SQL 方面的原因吗?
【问题讨论】:
-
您介意将 Item 类添加到问题中吗?
-
@Kokolo 你好,我刚刚添加了物品类,谢谢!
-
有流畅的配置吗?看,问题出在 EF 映射方面,您展示了 db 表很好,但现在我们需要查看完整的 EF 映射以便告诉您如何解决它。
-
@IvanStoev 嗨,没有任何流畅的配置。谢谢!
-
仍然缺少一些东西 - 没有任何配置/数据注释我得到不同的错误(“itemId”是必需的)。这段代码是第一个吗?你得到的错误说
itemId是计算出来的,你是在哪里以及如何配置的?
标签: c# asp.net sql-server entity-framework