自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

如何實(shí)現(xiàn)LINQ自定義業(yè)務(wù)

開(kāi)發(fā) 后端
本文詳細(xì)介紹了實(shí)現(xiàn)LINQ自定義業(yè)務(wù)的方法,包括了一些隱藏代碼、局部方法的內(nèi)容以及完整的調(diào)用代碼。

編者按:LINQ的基本概念大家應(yīng)該都已經(jīng)有所了解了,不過(guò)理論和實(shí)際總會(huì)有那么點(diǎn)差距。LINQ自定義業(yè)務(wù)就屬于LINQ的一個(gè)很典型的應(yīng)用,下面,我們就來(lái)一起看一看究竟怎么來(lái)實(shí)現(xiàn)LINQ自定義業(yè)務(wù)。

LINQ TO SQL很好很強(qiáng)大,它幾乎包含了我們能夠想到的所有與數(shù)據(jù)庫(kù)有關(guān)的操作,甚至也包含了一些我們可能都沒(méi)有想到的。

但不管怎樣,也許我們需要在LINQ TO SQL的操作中添加一個(gè)LINQ自定義業(yè)務(wù)邏輯,例如在插入某個(gè)實(shí)體的時(shí)候編寫(xiě)日志等等。如何實(shí)現(xiàn)這樣的功能呢?

其實(shí)這一點(diǎn),LINQ TO SQL在設(shè)計(jì)的時(shí)候也考慮到了。我們可以打開(kāi)那個(gè)dtml文件的designer.cs文件,我們發(fā)現(xiàn)有些隱藏的代碼

隱藏代碼

首先,我們看到NorthwindDataContext這個(gè)類型是一個(gè)局部類型(Partial Class),而且上述定義的一些方法也是局部方法(Partial Method)

局部方法是C# 3.0的新增特性。它使用在如下場(chǎng)景:

某個(gè)方法可有可無(wú)。通過(guò)partial 關(guān)鍵字聲明的目的是,可以讓其他地方代碼可以調(diào)用它。但如果該方法最終沒(méi)有被實(shí)現(xiàn),那么包括方法聲明以及調(diào)用代碼都會(huì)被刪除掉。

這個(gè)特性與虛方法,抽象方法都不同。

假設(shè)我們需要在InsertCustomer的時(shí)候添加一些業(yè)務(wù)邏輯,那么該怎么做呢?

  1. using System;  
  2. using System.Collections.Generic;  
  3. using System.Linq;  
  4. using System.Text;   
  5.  
  6. namespace Model  
  7. {  
  8.     public partial class NorthwindDataContext  
  9.     {  
  10.         partial void InsertCustomer(Customer instance)  
  11.         {  
  12.            //這里可以實(shí)現(xiàn)自己的保存邏輯,根據(jù)傳入的一個(gè)Customer的實(shí)例   
  13.  
  14.             this.ExecuteCommand("Insert Into.....");  
  15.             //還可以寫(xiě)日志,等等  
  16.         }  
  17.     }  
  18. }  

【注意】一旦我們這樣做了,那么插入Customer的邏輯就全部由我們來(lái)負(fù)責(zé)了。你需要確保這里面的代碼是完整的

  1. protected void addcustomer_Click(object sender, EventArgs e)  
  2. {  
  3.     Model.NorthwindDataContext db = new Model.NorthwindDataContext(connectionString);  
  4.     Model.Customer c = new Model.Customer()  
  5.     {  
  6.         CustomerID = "AAAAAS",  
  7.         CompanyName = "Xizhang" 
  8.     };   
  9.  
  10.     db.Customers.InsertOnSubmit(c);  
  11.     db.SubmitChanges();   
  12.  

在db.SubmitChanges方法被調(diào)用后,會(huì)自動(dòng)調(diào)用我們寫(xiě)的那個(gè)InsertCustomer方法,也就實(shí)現(xiàn)了LINQ自定義業(yè)務(wù)。

本文出自博客園,作者陳希章

【編輯推薦】

  1. 實(shí)例二:綁定到LINQ查詢的結(jié)果
  2. LINQ——語(yǔ)言級(jí)集成查詢?nèi)腴T(mén)指南
  3. LINQ查詢表達(dá)式深入剖析
  4. LINQ查詢的目的與實(shí)現(xiàn)手段
  5. LINQ的演變及其對(duì)C#設(shè)計(jì)的影響
責(zé)任編輯:林琳 來(lái)源: 博客園
相關(guān)推薦

2009-09-13 18:58:07

自定義LINQ提供器

2009-09-07 21:25:59

Linq自定義

2009-09-03 13:34:03

.NET自定義控件

2023-01-03 07:40:27

自定義滑塊組件

2013-01-10 09:36:19

NagiosNagios插件

2009-11-25 14:36:39

PHP函數(shù)usort(

2025-03-05 10:49:32

2021-05-29 16:12:00

通信協(xié)議設(shè)備

2024-12-27 15:37:23

2013-06-27 11:10:01

iOS開(kāi)發(fā)自定義UISlider

2015-02-12 15:33:43

微信SDK

2023-05-30 07:56:23

代碼軟件開(kāi)發(fā)

2022-12-07 08:56:27

SpringMVC核心組件

2013-01-09 17:22:38

Android開(kāi)發(fā)Camera

2022-04-01 15:59:22

SQLPostgreSQL審計(jì)

2022-03-01 16:09:06

OpenHarmon鴻蒙單選組件

2015-07-29 10:31:16

Java緩存算法

2009-06-17 16:00:03

Hibernate自定

2023-10-24 13:48:50

自定義注解舉值驗(yàn)證

2022-05-18 07:44:13

自定義菜單前端
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)