返回顶部
首页 > 资讯 > 精选 >linq级联删除的方法是什么
  • 132
分享到

linq级联删除的方法是什么

2023-06-17 21:06:24 132人浏览 独家记忆
摘要

这篇文章主要介绍“linq级联删除的方法是什么”,在日常操作中,相信很多人在linq级联删除的方法是什么问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”linq级联删除的方法是什么”的疑惑有所帮助!接下来,请跟

这篇文章主要介绍“linq级联删除的方法是什么”,在日常操作中,相信很多人在linq级联删除的方法是什么问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”linq级联删除的方法是什么”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

级联删除(cascading deletes)从父表中删除外键时也会删除子表中的行。如果在一个表的主键列上删除了一些行,那么在启用级联删除的情况下,将在相关表的任何外键列上删除相同信息。

///  /// 级联删除(从父表中删除外键时也会删除子表中的行)  ///  ///  ///  ///  public static void CascadingDeletes(T TEntity) where T : class // where T : INotifyPropertyChanging, INotifyPropertyChanged  {  var _type = TEntity.GetType();  var _prop = _type.GetProperties();  //查找是否有“AssociationAttribute”标记的属性(Linq中有“AssociationAttribute”标记的属性代表外表)  var _assolist = _prop.Where(  c => c.GetCustomAttributes(true).Any(  a => ((Attribute)a).GetType().Name == "AssociationAttribute") &  c.PropertyType.IsGenericType);//该属性必需是泛型  //其他表有外键关联的记录  if (_assolist.Count() > 0)  {  foreach (var _asso in _assolist)  {  var _items = _asso.GetValue(TEntity, null);  var _tItems = _items.GetType();  var _item = _tItems.GetProperty("Item");  var _tItem = _item.PropertyType;  var _countProp = _tItems.GetProperty("Count");//获取泛型中的属性“Count”  if (_countProp == null)  throw new Exception("Cannot find the property 'Count' in " + _items.ToString());  var _count = (int)_countProp.GetValue(_items, null);//获取关联记录的数量  for (int i = 0; i < _count; i++)  {  var _value = _item.GetValue(_items, new object[] { i });  CascadingDeletes(_value);//删除其他表有外键关联的记录  }  }  }  try {  DeleteByName(TEntity);//删除没外键关联的记录  }  catch (Exception ex)  {  throw ex;  }  }

我在用更通俗的语言为大家介绍一下什么时级联删除:例如员工表中一项数据是部门ID,部门ID是部门表的主键,如果是级联删除,当删除了部门A的时候,会把所有属于部门A的员工都给删除。Linq级联删除因为Linq语言的复杂性,就会让人感到更难实现。下面继续上述代码实现Linq级联删除。

public static void DeleteByName(T TEntity) where T : class {  var type = TEntity.GetType();  var table = TableFactory.CreateTable(type );  table.DeleteOnSubmit(TEntity);  //Console.WriteLine("Delete:"+ TEntity.ToString());  }   public static  class TableFactory   {   public static System.Data.Linq.Table CreateTable() where T : class {  return Database.NWDB.GetTable();  }  public static System.Data.Linq.ITable  CreateTable (Type t)   {  return Database.NWDB.GetTable(t);  }  }  public   static class Database  {  private static DLinq.NWDBDataContext _NWDB = null;  public static DLinq.NWDBDataContext NWDB  {  get {  if (_NWDB == null)  _NWDB = new DLinq.NWDBDataContext();  return _NWDB;  }  }  }

到此,关于“linq级联删除的方法是什么”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注编程网网站,小编会继续努力为大家带来更多实用的文章!

--结束END--

本文标题: linq级联删除的方法是什么

本文链接: https://lsjlt.com/news/293536.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • linq级联删除的方法是什么
    这篇文章主要介绍“linq级联删除的方法是什么”,在日常操作中,相信很多人在linq级联删除的方法是什么问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”linq级联删除的方法是什么”的疑惑有所帮助!接下来,请跟...
    99+
    2023-06-17
  • mybatis级联删除的方法是什么
    MyBatis提供了两种级联删除的方法: 使用``标签来定义级联删除的SQL语句。在该标签中可以使用``标签来循环删除多个相关的记...
    99+
    2023-10-25
    mybatis
  • thinkphp多个级联删除的方法是什么
    在ThinkPHP中,可以使用`delete`方法进行多个级联删除。假设有如下的数据表关系:- 表A对应模型`ModelA`,有主键...
    99+
    2023-09-09
    thinkphp
  • LINQ删除记录的方法是什么
    这篇文章主要介绍“LINQ删除记录的方法是什么”,在日常操作中,相信很多人在LINQ删除记录的方法是什么问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”LINQ删除记录的方法是什么”的疑惑有所帮助!接下来,请跟...
    99+
    2023-06-17
  • 实现LINQ删除数据的巧妙方法是什么
    实现LINQ删除数据的巧妙方法是什么,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。很多朋友在实现LINQ删除数据的操作的时候经常是先要对数据进行读取操作,然后再进一步考虑删...
    99+
    2023-06-17
  • 删除nodejs的方法是什么
    本篇内容介绍了“删除nodejs的方法是什么”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成! ...
    99+
    2024-04-02
  • sqlite删除表的方法是什么
    在SQLite中,如果你想删除一个表,可以使用DROP TABLE语句。这个命令会移除表结构及其包含的所有数据。请注意,执行这个操作...
    99+
    2024-04-10
    sqlite
  • sqlserver删除表的方法是什么
    在SQL Server中,删除表的基本方法是使用DROP TABLE语句。这个命令会从数据库中完全移除指定的表及其数据,因此在执行之...
    99+
    2024-04-09
    sqlserver
  • postgresql删除表的方法是什么
    要在 PostgreSQL 中删除整个表,您可以使用 DROP TABLE 语句。以下是一个示例: DROP TABLE table...
    99+
    2024-04-09
    postgresql
  • ubuntu删除mysql的方法是什么
    要在Ubuntu上删除MySQL,可以使用以下命令: 确保MySQL服务器已经停止运行: sudo service mysql ...
    99+
    2024-04-24
    ubuntu mysql
  • Linq联接数据是什么
    这篇文章主要介绍“Linq联接数据是什么”,在日常操作中,相信很多人在Linq联接数据是什么问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Linq联接数据是什么”的疑惑有所帮助!接下来,请跟着小编一起来学习吧...
    99+
    2023-06-17
  • Linq链接的方法是什么
    这篇文章主要介绍“Linq链接的方法是什么”,在日常操作中,相信很多人在Linq链接的方法是什么问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Linq链接的方法是什么”的疑惑有所帮助!接下来,请跟着小编一起来...
    99+
    2023-06-17
  • mysql删除用户的方法是什么
    这篇文章主要介绍了mysql删除用户的方法是什么,具有一定借鉴价值,需要的朋友可以参考下。希望大家阅读完这篇文章后大有收获。下面让小编带着大家一起了解一下。mysql删除用户的两种方法:一、使用dro...
    99+
    2024-04-02
  • word模板的删除方法是什么
    要删除Word模板,可以按照以下步骤操作:1. 打开Word软件。2. 在主菜单中选择“文件”选项。3. 在弹出的文件菜单中,选择“...
    99+
    2023-09-29
    word
  • mongodb分组删除的方法是什么
    在MongoDB中,要删除特定分组的文档,可以使用`$group`操作符结合`$match`操作符和`$unset`操作符来实现。以...
    99+
    2023-09-06
    mongodb
  • redis的批量删除方法是什么
    Redis的批量删除方法可以使用DEL命令进行操作。DEL命令用于删除一个或多个指定的键(key)。它可以一次删除一个或多个键,可以...
    99+
    2023-09-11
    redis
  • ubuntu删除文件的方法是什么
    这篇文章主要介绍“ubuntu删除文件的方法是什么”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“ubuntu删除文件的方法是什么”文章能帮助大家解决问题。 ubu...
    99+
    2022-12-30
    ubuntu
  • nodejs删除文件的方法是什么
    这篇文章主要介绍“nodejs删除文件的方法是什么”,在日常操作中,相信很多人在nodejs删除文件的方法是什么问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”nodejs删除文件的方法是什么”的疑惑有所帮助!...
    99+
    2023-07-05
  • mongodb删除索引的方法是什么
    在MongoDB中,可以使用db.collection.dropIndex()方法来删除索引。通过指定索引的名称或键名,即可删除该索...
    99+
    2024-03-08
    mongodb
  • sql删除索引的方法是什么
    要删除一个索引,可以使用SQL中的DROP INDEX语句。例如,要删除名为idx_firstname的索引,可以执行以下命令: D...
    99+
    2024-03-11
    sql
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作