亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

實體框架數據未使用 Wcf 服務保存或更新

實體框架數據未使用 Wcf 服務保存或更新

C#
慕娘9325324 2023-09-09 16:58:19
我正在嘗試使用 WCF 服務中的實體框架 6.2.0 更新新數據并將新數據添加到我的 SQL Server 數據庫中,然后在我的應用程序中使用該服務。雖然數據已成功獲取,但添加或更新數據不起作用。我正在使用此處顯示的方法進行更新。我在其他項目中使用過相同的方法并且它曾經有效。我在這里可能做錯了什么?響應:有趣的是我得到 1 作為回報,這意味著數據已更新。但實際上數據并沒有更新!public int EditSaveCategory(Category category){        try        {            int r = 0;            using (Intelliventory_DBEntities context = new Intelliventory_DBEntities())            {                var cat = context.Categories.FirstOrDefault(x => x.CategoryID == category.CategoryID);                if (cat != null)                {                    cat.CategoryName = category.CategoryName;                    r = context.SaveChanges();                    // return 1;                }            }            return r;        }        catch (Exception e)        {            throw new FaultException<IntelliWcfException>(GetIntelliWcfException(e));        }    }  從應用程序調用:var cat = new Category{    CategoryName = SelectedCategory.CategoryName.Trim(),    CategoryID = SelectedCategory.CategoryID};_client.EditSaveCategoryAsync(cat);  回復 :private void ClientOnEditSaveCategoryCompleted(object sender, EditSaveCategoryCompletedEventArgs e){        try        {            if (e.Error == null)            {                var response = e.Result;                if (response == 1)                {                    Growl.SuccessGlobal("Category Saved !");                }                else if (response == 2)                {                    Growl.ErrorGlobal("Category Not Found !");                }                else                {                    Growl.ErrorGlobal("Error !");                }             }        }        catch (Exception exception)        {            Console.WriteLine(exception);            throw;        }}  
查看完整描述

3 回答

?
蠱毒傳說

TA貢獻1895條經驗 獲得超3個贊

之前添加這個context.savechanges()

context.Entry(cat).State = System.Data.Entity.EntityState.Modified;


查看完整回答
反對 回復 2023-09-09
?
慕姐8265434

TA貢獻1813條經驗 獲得超2個贊

在您調用的地方EditSaveCategoryAsync,您的SelectedCategory對象(大概)是您從數據庫中檢索到的對象。


然后,您在數據庫中選擇同一行:-


x => x.CategoryID == category.CategoryID


并使用已有的相同值(或基于您的 UI 代碼的某些變體)更新它:-


cat.CategoryName = category.CategoryName;


SaveChanges將指示您的對象已被修改(因為您已經在跟蹤對象上設置了屬性,盡管設置為相同的值),但是當您檢查數據庫時,它似乎尚未更新,因為它已設置為已經設置的內容曾是。


要更新,您的調用代碼應該是這樣的:-


var cat = new Category

{

    CategoryName = "New name", // or value from some other control

    CategoryID = SelectedCategory.CategoryID

};


_client.EditSaveCategoryAsync(cat);


查看完整回答
反對 回復 2023-09-09
?
慕村9548890

TA貢獻1884條經驗 獲得超4個贊

你的代碼段沒有問題。我嘗試使用你的代碼并更新我的數據庫,它運行得很好。我認為類別表肯定應該更新。
我唯一懷疑的是連接字符串,請檢查您的連接字符串,并確保您正在修改的數據庫是您正在連接的數據庫,然后刷新您的數據庫表。另外,由于WCF是由IIS托管的,不使用集成安全性來連接數據庫,我們最好使用用戶名/密碼模式來連接。
最后,我建議您添加一個斷點來調試并檢查代碼是否成功檢索數據并更新條目。

查看完整回答
反對 回復 2023-09-09
  • 3 回答
  • 0 關注
  • 152 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號