這篇文章主要為大家展示了“Ling to sql如何更新實體”,內容簡而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領大家一起研究并學習一下“Ling to sql如何更新實體”這篇文章吧。
Ling to sql更新實體非常費勁!一般網上的例子中都是一下這樣的。
Customer cust = db.Customers.First(c => c.CustomerID == "ALFKI"); cust.ContactTitle = "Vice President"; db.SubmitChanges();
但是,貌似在分層系統中,數據庫操作會寫到數據訪問層,定義實體,抽象出接口。
實體類 :
/// <summary> /// 計劃任務 /// </summary> [Table(Name = "EDM_TaskPlan")] public class TaskPlan { /// <summary> /// 計劃編碼 /// </summary> [Column(IsDbGenerated=true,IsPrimaryKey=true,Name="PlanID")] public int PlanID { get; set; } /// <summary> /// 任務名稱 /// </summary> [Column(Name="PlanName")] public string Name { get; set; } /// <summary> /// 任務描述 /// </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; } }
數據訪問接口 :
/// <summary> /// 任務計劃數據訪問接口 /// </summary> public interface ITaskPlanDao { /// <summary> /// 查找全部 /// </summary> /// <returns></returns> TaskPlan[] FindAll(); /// <summary> /// 根據編碼查找 /// </summary> /// <param name="id">計劃任務編碼</param> /// <returns></returns> TaskPlan FindByID(int id); /// <summary> /// 保存或更新 /// </summary> /// <param name="taskPlan">任務計劃對象</param> /// <returns></returns> int SaveOrUpdate(TaskPlan taskPlan); /// <summary> /// 根據編碼刪除 /// </summary> /// <param name="id">任務計劃編碼</param> /// <returns></returns> void DeleteByID(int id); }
但是我在Ling to sql更新實體的時候出現了問題。
dbContext.Attach(taskPlan); //根本不會更新 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.
網上也有解決方案,就是加IsVersion字段,感覺怪怪的。
以上是“Ling to sql如何更新實體”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。