【发布时间】:2019-12-27 11:21:51
【问题描述】:
所以我在这里的代码有一些问题,因为我是 C# 和 linq 的新手。 我正在尝试将 id、icon_url 和计数值插入到我的数据库中。但是当我插入第一行时,id 设置为 0,当我添加另一行时,我得到了两个错误。我想自动增加 ID,因为它是主键并且是 int 类型。我怎样才能解决这个问题? 请参阅下面的代码和屏幕截图。
图片
代码:
bool imcount = db.dashboards.Any(dash => dash.icon_url.Contains(imageurl));
if (imcount == false)
{
using (ECardModel db = new ECardModel())
{
dashboard imageCount = new dashboard()
{
icon_url = imageurl,
count = 1
};
db.dashboards.Add(imageCount);
db.SaveChanges();
}
}
else if (imcount == true)
{
using (ECardModel db = new ECardModel())
{
int icount = db.dashboards.Where(dash => dash.icon_url.Contains(imageurl)).Max(dash => dash.count);
dashboard imageCount = new dashboard()
{
count = icount + 1
};
db.dashboards.Add(imageCount);
db.SaveChanges();
}
}
更新:
当我将身份规范设置为“是”时,它又给了我一个错误。 请注意,我无法更新我的 .edmx 模型,因为它是 xml 格式并且不显示模型图。此外,数字 0 仍插入数据库中。 请看下图。
【问题讨论】:
-
分享你的表模式,好像你只是把你的列作为主键,而不是在上面的代码中设置任何值。
-
为 Id 列设置 IDENTITY_INSERT ON(在数据库表中)并刷新您的模型。
-
@DarkRob 是的,你是对的,但我不知道如何添加和自动增加 id 的值。
标签: c# sql-server linq linq-to-sql