温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

LINQ中怎么自定义业务

发布时间:2021-07-20 11:15:05 来源:亿速云 阅读:96 作者:Leah 栏目:编程语言

LINQ中怎么自定义业务,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。

LINQ TO SQL很好很强大,它几乎包含了我们能够想到的所有与数据库有关的操作,甚至也包含了一些我们可能都没有想到的。

但不管怎样,也许我们需要在LINQ TO SQL的操作中添加一个LINQ自定义业务逻辑,例如在插入某个实体的时候编写日志等等。如何实现这样的功能呢?

其实这一点,LINQ TO SQL在设计的时候也考虑到了。我们可以打开那个dtml文件的designer.cs文件,我们发现有些隐藏的代码

LINQ中怎么自定义业务

首先,我们看到NorthwindDataContext这个类型是一个局部类型(Partial Class),而且上述定义的一些方法也是局部方法(Partial Method)

局部方法是C# 3.0的新增特性。它使用在如下场景:

某个方法可有可无。通过partial 关键字声明的目的是,可以让其他地方代码可以调用它。但如果该方法最终没有被实现,那么包括方法声明以及调用代码都会被删除掉。

这个特性与虚方法,抽象方法都不同。

假设我们需要在InsertCustomer的时候添加一些业务逻辑,那么该怎么做呢?

using System;  using System.Collections.Generic;  using System.Linq;  using System.Text;    namespace Model  {      public partial class NorthwindDataContext      {          partial void InsertCustomer(Customer instance)          {             //这里可以实现自己的保存逻辑,根据传入的一个Customer的实例                this.ExecuteCommand("Insert Into.....");              //还可以写日志,等等          }      }  }

【注意】一旦我们这样做了,那么插入Customer的逻辑就全部由我们来负责了。你需要确保这里面的代码是完整的

protected void addcustomer_Click(object sender, EventArgs e)  {      Model.NorthwindDataContext db = new Model.NorthwindDataContext(connectionString);      Model.Customer c = new Model.Customer()      {          CustomerID = "AAAAAS",          CompanyName = "Xizhang"     };        db.Customers.InsertOnSubmit(c);      db.SubmitChanges();    }

看完上述内容是否对您有帮助呢?如果还想对相关知识有进一步的了解或阅读更多相关文章,请关注亿速云行业资讯频道,感谢您对亿速云的支持。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI