Ling to sql更新实体概述

本文向大家介绍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字段,感觉怪怪的。

转载于:https://www.cnblogs.com/Peter-Luo/archive/2012/05/31/2528962.html

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值