Lingtosql更新实体概述

本文向大家介绍Ling to sql更新实体,可能好多人还不了解Ling to sql更新实体,没有关系,看完本文你肯定有不少收获,希望本文能教会你更多东西。

创新互联专业为企业提供山阳网站建设、山阳做网站、山阳网站设计、山阳网站制作等企业网站建设、网页设计与制作、山阳企业网站模板建站服务,十多年山阳做网站经验,不只是建网站,更提供有价值的思路和整体网络服务。

Ling to sql更新实体非常费劲!一般网上的例子中都是一下这样的。

 
 
 
  1. Customer cust = db.Customers.First(c => c.CustomerID == "ALFKI");    
  2. cust.ContactTitle = "Vice President";    
  3. db.SubmitChanges();   

但是,貌似在分层系统中,数据库操作会写到数据访问层,定义实体,抽象出接口。

实体类 :

 
 
 
  1. ///  
  2. /// 计划任务  
  3. ///  
  4. [Table(Name = "EDM_TaskPlan")]  
  5. public class TaskPlan  
  6. {  
  7. ///  
  8. /// 计划编码  
  9. ///  
  10. [Column(IsDbGenerated=true,IsPrimaryKey=true,Name="PlanID")]  
  11. public int PlanID { get; set; }  
  12.  
  13. ///  
  14. /// 任务名称  
  15. ///  
  16. [Column(Name="PlanName")]  
  17. public string Name { get; set; }  
  18.  
  19. ///  
  20. /// 任务描述  
  21. ///  
  22. [Column]  
  23. public string Description { get; set; }  
  24.  
  25. ///  
  26. /// 星期一定义  
  27. ///  
  28. [Column]  
  29. public string MondayDef { get; set; }  
  30.  
  31. ///  
  32. /// 星期二定义  
  33. ///  
  34. [Column]  
  35. public string TuesdayDef { get; set; }  
  36.  
  37. ///  
  38. /// 星期三定义  
  39. ///  
  40. [Column]  
  41. public string WednesdayDef { get; set; }  
  42.  
  43. ///  
  44. /// 星期四定义  
  45. ///  
  46. [Column]  
  47. public string ThursdayDef { get; set; }  
  48.  
  49. ///  
  50. /// 星期五定义  
  51. ///  
  52. [Column]  
  53. public string FridayDef { get; set; }  
  54.  
  55. ///  
  56. /// 星期六定义  
  57. ///  
  58. [Column]  
  59. public string SaturdayDef { get; set; }  
  60.  
  61. ///  
  62. /// 星期日定义  
  63. ///  
  64. [Column]  
  65. public string SundayDef { get; set; }  

数据访问接口 :

 
 
 
  1. ///  
  2. /// 任务计划数据访问接口  
  3. ///  
  4. public interface ITaskPlanDao  
  5. {  
  6. ///  
  7. /// 查找全部  
  8. ///  
  9. ///  
  10. TaskPlan[] FindAll();  
  11.  
  12. ///  
  13. /// 根据编码查找  
  14. ///  
  15. ///  name="id">计划任务编码 
  16. ///  
  17. TaskPlan FindByID(int id);  
  18.  
  19. ///  
  20. /// 保存或更新  
  21. ///  
  22. ///  name="taskPlan">任务计划对象 
  23. ///  
  24. int SaveOrUpdate(TaskPlan taskPlan);  
  25.  
  26. ///  
  27. /// 根据编码删除  
  28. ///  
  29. ///  name="id">任务计划编码 
  30. ///  
  31. void DeleteByID(int id);  

但是我在Ling to sql更新实体的时候出现了问题。

 
 
 
  1. dbContext.Attach(taskPlan);  
  2. //根本不会更新  
  3. dbContext.Attach(taskPlan,true);  
  4. //An entity can only be attached as modified without original state if it 
  5. //declares a version member or does not have an update check policy  
  6. dbContext.Attach(taskPlan,this.FindByID(taskPlan.PlanID));  
  7. //Cannot add an entity with a key that is already in use. 

网上也有解决方案,就是加IsVersion字段,感觉怪怪的。

【编辑推荐】

  1. LINQ Expression tree分析
  2. Linq调用数据访问服务
  3. Linq实体继承简单描述
  4. Linq DataContext浅谈
  5. Linq DataLoadOptions描述

网页名称:Lingtosql更新实体概述
文章起源:http://www.shufengxianlan.com/qtweb/news39/308789.html

网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联