Linq 更改主键值
来源:互联网 发布:布米米下载软件 编辑:程序博客网 时间:2024/05/16 08:00
有一个班级表,主键是class_id,在管理班级时要进行逻辑删除,而只是单纯的is_del字段(记录每条数据是否有效)更改为true,主键class_id如果不变动,在再次增加一个班级时,其主键如果和某条逻辑删除的数据主键是相同的,那么将会操作失败,因为主键不能重复,所以需要更改逻辑删除的信息的主键值,例如在前面加个字符D,然而linq是不允许修改主键值的,为了防止并发操作引起的错误,所以要想是实现更改主键的功能,只能是先将此条信息复制出来,修改后再重新插入一条数据,然后再把原来的那条数据删除了,也就实现了修改主键的功能。
下面是我写的逻辑删除函数
public bool delete(string id)
{
Model.G_class temp = (from row in DB.G_class where row.class_id == id select row).First();
Model.G_class newRow = new Model.G_class();//重新创建一个对象
//不能直接让newRow = temp,然后再更改newRow,因为那样成了引用操作,而我们要做的是重新建立对象后进行复制操作
newRow.class_id = "D" + temp.class_id;//修改主键值
newRow.class_name = temp.class_name;
newRow.class_max = temp.class_max;
newRow.class_blog = temp.class_blog;
newRow.class_memo = temp.class_memo;
newRow.kindergarten_type = temp.kindergarten_type;
newRow.is_del = true;//逻辑删除字段更改
try
{
Table<Model.G_class> table = DB.GetTable<Model.G_class>();
DB.G_class.DeleteOnSubmit(temp);//删除原来数据
table.InsertOnSubmit(newRow);//插入新的数据
DB.SubmitChanges();
return true;
}
catch
{
return false;
}
}
- Linq 更改主键值
- Oracle 更改表主键
- linq to sql更改数据
- Linq找不到行或行已更改
- mysql 批量更改符合指定条件的记录的主键为一系列值
- 如何更改数据表主键字段的数据类型
- 更改sql数据库主键自动加一
- postgresql 添加serial字段 更改主键
- mysql删除及更改表的主键
- 数据库操作更改主键、循环插入
- 巧用linq在list<T>去重复,根据主键ID
- Linq中行数据已更改或行数据已删除
- linq更改list实体对象中的字段 批量条件
- Sql语句更改字段类型及主键等实用整理
- csdn更改用户资料,变成插入,数据库主键出错
- 其他用户已更改具有主键[2332]的行
- 在线重定义更改主键字段类型/ORA-23539
- Sql语句更改字段类型及主键等实用整理
- 微软VS2010环境工程配置编译优化以及工程体积减肥技巧分享
- 无线技术开发开篇 无线基础 知识
- 高人对libsvm的经典总结(全面至极)
- 让XP远程支持网络身份验证,解决“远程计算机需要网络级别身份验证,你的系统不支持”难题
- VMware Workstation虚拟机Ubuntu不能上网解决办法
- Linq 更改主键值
- JFreeChart生成饼图
- redis 经验
- 解密:LL与LR解析 1(译)
- 面向HTTP协议编程
- Linux服务器性能评估与优化
- Android 侧边菜单制作 链接分享
- 8款实用的Jquery瀑布流插件
- Android退出所有的Activity