溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

Ling to sql如何更新實(shí)體

發(fā)布時(shí)間:2021-12-01 16:54:34 來源:億速云 閱讀:164 作者:小新 欄目:編程語(yǔ)言

這篇文章主要為大家展示了“Ling to sql如何更新實(shí)體”,內(nèi)容簡(jiǎn)而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領(lǐng)大家一起研究并學(xué)習(xí)一下“Ling to sql如何更新實(shí)體”這篇文章吧。

Ling to sql更新實(shí)體非常費(fèi)勁!一般網(wǎng)上的例子中都是一下這樣的。

Customer cust = db.Customers.First(c => c.CustomerID == "ALFKI");    cust.ContactTitle = "Vice President";    db.SubmitChanges();

但是,貌似在分層系統(tǒng)中,數(shù)據(jù)庫(kù)操作會(huì)寫到數(shù)據(jù)訪問層,定義實(shí)體,抽象出接口。

實(shí)體類 :

/// <summary> /// 計(jì)劃任務(wù)  /// </summary> [Table(Name = "EDM_TaskPlan")]  public class TaskPlan  {  /// <summary> /// 計(jì)劃編碼  /// </summary> [Column(IsDbGenerated=true,IsPrimaryKey=true,Name="PlanID")]  public int PlanID { get; set; }   /// <summary> /// 任務(wù)名稱  /// </summary> [Column(Name="PlanName")]  public string Name { get; set; }   /// <summary> /// 任務(wù)描述  /// </summary> [Column]  public string Description { get; set; }   /// <summary> /// 星期一定義  /// </summary> [Column]  public string MondayDef { get; set; }   /// <summary> /// 星期二定義  /// </summary> [Column]  public string TuesdayDef { get; set; }   /// <summary> /// 星期三定義  /// </summary> [Column]  public string WednesdayDef { get; set; }   /// <summary> /// 星期四定義  /// </summary> [Column]  public string ThursdayDef { get; set; }   /// <summary> /// 星期五定義  /// </summary> [Column]  public string FridayDef { get; set; }   /// <summary> /// 星期六定義  /// </summary> [Column]  public string SaturdayDef { get; set; }   /// <summary> /// 星期日定義  /// </summary> [Column]  public string SundayDef { get; set; }  }

數(shù)據(jù)訪問接口 :

/// <summary> /// 任務(wù)計(jì)劃數(shù)據(jù)訪問接口  /// </summary> public interface ITaskPlanDao  {  /// <summary> /// 查找全部  /// </summary> /// <returns></returns> TaskPlan[] FindAll();   /// <summary> /// 根據(jù)編碼查找  /// </summary> /// <param name="id">計(jì)劃任務(wù)編碼</param> /// <returns></returns> TaskPlan FindByID(int id);   /// <summary> /// 保存或更新  /// </summary> /// <param name="taskPlan">任務(wù)計(jì)劃對(duì)象</param> /// <returns></returns> int SaveOrUpdate(TaskPlan taskPlan);   /// <summary> /// 根據(jù)編碼刪除  /// </summary> /// <param name="id">任務(wù)計(jì)劃編碼</param> /// <returns></returns> void DeleteByID(int id);  }

但是我在Ling to sql更新實(shí)體的時(shí)候出現(xiàn)了問題。

dbContext.Attach(taskPlan);  //根本不會(huì)更新  dbContext.Attach(taskPlan,true);  //An entity can only be attached as modified without original state if it //declares a version member or does not have an update check policy  dbContext.Attach(taskPlan,this.FindByID(taskPlan.PlanID));  //Cannot add an entity with a key that is already in use.

網(wǎng)上也有解決方案,就是加IsVersion字段,感覺怪怪的。

以上是“Ling to sql如何更新實(shí)體”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對(duì)大家有所幫助,如果還想學(xué)習(xí)更多知識(shí),歡迎關(guān)注億速云行業(yè)資訊頻道!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI