我有一个带有存储过程的数据库,我使用了 Ado.Net Entity Data Modell 和 Ado.Net DBContext 生成器。在这部分之后我得到了错误:“没有初级密钥”。我在 entityset 行中的 .edmx 文件中进行了修改: store.schema="dbo" 到 schema="dbo" 并删除 ...。这种方式适用于更新行,但存储过程不会执行。
示例:编辑工作后,我插入此行进行编辑:
db.SetChangedByUserTrue(id);
所以我的控制器是:
[ValidateInput(false)]
[HttpPost]
public ActionResult Edit(int id, ProductResource blog)
{
try
{
using (var db = new OnlineCAT_Maint_TESTEntities())
{
db.Entry(blog).State = System.Data.EntityState.Modified;
db.SaveChanges();
db.SetChangedByUserTrue(id);
return RedirectToAction("Index");
}
}
catch
{
return View();
}
}
我的SP:
更改程序 SetChangedByUserTrue -- 这里添加存储过程的参数 @ProductResourceId 整数 作为 开始 -- 添加了 SET NOCOUNT ON 以防止额外的结果集 -- 干扰 SELECT 语句。 设置无计数; -- 在此处插入过程语句 更新 OnlineCAT_Maint_TEST.dbo.ProductResource 设置 ChangedByUser = 1 其中 ProductResourceId = @ProductResourceId 结尾
这是错误:
{“无效的对象名称'OnlineCAT_Maint_TEST.dbo.ProductResource'。”}
两个问题之间的联系?解决办法是什么?