Ling to sql更新实体概述

30 篇文章 0 订阅
摘要: 本文向大家介绍Ling to sql更新实体,可能好多人还不了解Ling to sql更新实体,没有关系,看完本文你肯定有不少收获,希望本文能教会你更多东西。Ling to sql更新实体非常费劲!一般网上的例子中都是一下这样的。Cus ...

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

数据访问接口 :

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

但是我在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字段,感觉怪怪的。

转载地址: http://www.189works.com/article-66436-1.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值