十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
这篇文章主要为大家展示了“Ling to sql如何更新实体”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Ling to sql如何更新实体”这篇文章吧。
创新互联建站是一家专业提供伊美企业网站建设,专注与成都网站制作、成都做网站、外贸营销网站建设、HTML5建站、小程序制作等业务。10年已为伊美众多企业、政府机构等服务。创新互联专业网站建设公司优惠进行中。
Ling to sql更新实体非常费劲!一般网上的例子中都是一下这样的。
Customer cust = db.Customers.First(c => c.CustomerID == "ALFKI"); cust.ContactTitle = "Vice President"; db.SubmitChanges();
但是,貌似在分层系统中,数据库操作会写到数据访问层,定义实体,抽象出接口。
实体类 :
////// 计划任务 /// [Table(Name = "EDM_TaskPlan")] public class TaskPlan { ////// 计划编码 /// [Column(IsDbGenerated=true,IsPrimaryKey=true,Name="PlanID")] public int PlanID { get; set; } ////// 任务名称 /// [Column(Name="PlanName")] public string Name { get; set; } ////// 任务描述 /// [Column] public string Description { get; set; } ////// 星期一定义 /// [Column] public string MondayDef { get; set; } ////// 星期二定义 /// [Column] public string TuesdayDef { get; set; } ////// 星期三定义 /// [Column] public string WednesdayDef { get; set; } ////// 星期四定义 /// [Column] public string ThursdayDef { get; set; } ////// 星期五定义 /// [Column] public string FridayDef { get; set; } ////// 星期六定义 /// [Column] public string SaturdayDef { get; set; } ////// 星期日定义 /// [Column] public string SundayDef { get; set; } }
数据访问接口 :
////// 任务计划数据访问接口 /// public interface ITaskPlanDao { ////// 查找全部 /// ///TaskPlan[] FindAll(); /// /// 根据编码查找 /// /// 计划任务编码 ///TaskPlan FindByID(int id); /// /// 保存或更新 /// /// 任务计划对象 ///int SaveOrUpdate(TaskPlan taskPlan); /// /// 根据编码删除 /// /// 任务计划编码 ///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如何更新实体”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注创新互联行业资讯频道!