我有一个带有存储过程的数据库,我使用了 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'。”}
两个问题之间的联系?解决办法是什么?