2

我有一个带有存储过程的数据库,我使用了 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'。”}

两个问题之间的联系?解决办法是什么?

4

0 回答 0