Ling to sql更新實體概述
作者:佚名 
  這里介紹Ling to sql更新實體非常費勁,但是,貌似在分層系統(tǒng)中,數據庫操作會寫到數據訪問層,定義實體,抽象出接口。
 本文向大家介紹Ling to sql更新實體,可能好多人還不了解Ling to sql更新實體,沒有關系,看完本文你肯定有不少收獲,希望本文能教會你更多東西。
Ling to sql更新實體非常費勁!一般網上的例子中都是一下這樣的。
- Customer cust = db.Customers.First(c => c.CustomerID == "ALFKI");
 - cust.ContactTitle = "Vice President";
 - db.SubmitChanges();
 
但是,貌似在分層系統(tǒng)中,數據庫操作會寫到數據訪問層,定義實體,抽象出接口。
實體類 :
- /// <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更新實體的時候出現(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.
 
網上也有解決方案,就是加IsVersion字段,感覺怪怪的。
【編輯推薦】
責任編輯:佚名 
                    來源:
                    IT168
 














 
 
 
 
 
 
 