2

ストアドプロシージャを含むデータベースがあり、Ado.Net EntityDataModellとAdo.NetDBContextジェネレーターを使用しました。このパートの後、「入門キーがありません」というエラーが発生しました。エンティティセット行の.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:

ALTER PROCEDURE SetChangedByUserTrue
    -ここにストアドプロシージャのパラメータを追加します
    @ProductResourceId int

なので
始める
    --SET NOCOUNT ONが追加され、追加の結果セットが発生しないようになりました。
    --SELECTステートメントへの干渉。
    NOCOUNTをオンに設定します。
    -ここに手順のステートメントを挿入します
    OnlineCAT_Maint_TEST.dbo.ProductResource set ChangedByUser = 1を更新します。ここで、ProductResourceId = @ProductResourceId
終わり  

そしてこれはエラーです:

{"無効なオブジェクト名'OnlineCAT_Maint_TEST.dbo.ProductResource'。"}

2つの問題間の関係?解決策は何ですか?

4

0 に答える 0