Ling to sql更新實(shí)體概述
作者:佚名
這里介紹Ling to sql更新實(shí)體非常費(fèi)勁,但是,貌似在分層系統(tǒng)中,數(shù)據(jù)庫操作會寫到數(shù)據(jù)訪問層,定義實(shí)體,抽象出接口。
本文向大家介紹Ling to sql更新實(shí)體,可能好多人還不了解Ling to sql更新實(shí)體,沒有關(guān)系,看完本文你肯定有不少收獲,希望本文能教會你更多東西。
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ù)庫操作會寫到數(shù)據(jù)訪問層,定義實(shí)體,抽象出接口。
實(shí)體類 :
- /// <summary>
- /// 計劃任務(wù)
- /// </summary>
- [Table(Name = "EDM_TaskPlan")]
- public class TaskPlan
- {
- /// <summary>
- /// 計劃編碼
- /// </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ù)計劃數(shù)據(jù)訪問接口
- /// </summary>
- public interface ITaskPlanDao
- {
- /// <summary>
- /// 查找全部
- /// </summary>
- /// <returns></returns>
- TaskPlan[] FindAll();
- /// <summary>
- /// 根據(jù)編碼查找
- /// </summary>
- /// <param name="id">計劃任務(wù)編碼</param>
- /// <returns></returns>
- TaskPlan FindByID(int id);
- /// <summary>
- /// 保存或更新
- /// </summary>
- /// <param name="taskPlan">任務(wù)計劃對象</param>
- /// <returns></returns>
- int SaveOrUpdate(TaskPlan taskPlan);
- /// <summary>
- /// 根據(jù)編碼刪除
- /// </summary>
- /// <param name="id">任務(wù)計劃編碼</param>
- /// <returns></returns>
- void DeleteByID(int id);
- }
但是我在Ling to sql更新實(shí)體的時候出現(xiàn)了問題。
- 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.
網(wǎng)上也有解決方案,就是加IsVersion字段,感覺怪怪的。
【編輯推薦】
責(zé)任編輯:佚名
來源:
IT168