温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

Ling to sql如何更新实体

发布时间:2021-12-01 16:54:34 来源:亿速云 阅读:160 作者:小新 栏目:编程语言

这篇文章主要为大家展示了“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如何更新实体”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注亿速云行业资讯频道!

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI