成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

如何實現LINQ自定義業務

開發 后端
本文詳細介紹了實現LINQ自定義業務的方法,包括了一些隱藏代碼、局部方法的內容以及完整的調用代碼。

編者按:LINQ的基本概念大家應該都已經有所了解了,不過理論和實際總會有那么點差距。LINQ自定義業務就屬于LINQ的一個很典型的應用,下面,我們就來一起看一看究竟怎么來實現LINQ自定義業務。

LINQ TO SQL很好很強大,它幾乎包含了我們能夠想到的所有與數據庫有關的操作,甚至也包含了一些我們可能都沒有想到的。

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

其實這一點,LINQ TO SQL在設計的時候也考慮到了。我們可以打開那個dtml文件的designer.cs文件,我們發現有些隱藏的代碼

隱藏代碼

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

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

某個方法可有可無。通過partial 關鍵字聲明的目的是,可以讓其他地方代碼可以調用它。但如果該方法最終沒有被實現,那么包括方法聲明以及調用代碼都會被刪除掉。

這個特性與虛方法,抽象方法都不同。

假設我們需要在InsertCustomer的時候添加一些業務邏輯,那么該怎么做呢?

  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.            //這里可以實現自己的保存邏輯,根據傳入的一個Customer的實例   
  13.  
  14.             this.ExecuteCommand("Insert Into.....");  
  15.             //還可以寫日志,等等  
  16.         }  
  17.     }  
  18. }  

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

  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方法被調用后,會自動調用我們寫的那個InsertCustomer方法,也就實現了LINQ自定義業務。

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

【編輯推薦】

  1. 實例二:綁定到LINQ查詢的結果
  2. LINQ——語言級集成查詢入門指南
  3. LINQ查詢表達式深入剖析
  4. LINQ查詢的目的與實現手段
  5. LINQ的演變及其對C#設計的影響
責任編輯:林琳 來源: 博客園
相關推薦

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插件

2021-05-29 16:12:00

通信協議設備

2009-11-25 14:36:39

PHP函數usort(

2025-03-05 10:49:32

2013-06-27 11:10:01

iOS開發自定義UISlider

2023-05-30 07:56:23

代碼軟件開發

2022-05-18 07:44:13

自定義菜單前端

2024-12-27 15:37:23

2025-05-08 08:30:00

Redis自定義序列化數據庫

2015-02-12 15:33:43

微信SDK

2009-06-17 16:00:03

Hibernate自定

2013-01-09 17:22:38

Android開發Camera

2022-03-01 16:09:06

OpenHarmon鴻蒙單選組件

2015-07-29 10:31:16

Java緩存算法

2022-12-07 08:56:27

SpringMVC核心組件

2022-04-01 15:59:22

SQLPostgreSQL審計
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 日本电影免费完整观看 | 日韩精品一区二区三区在线观看 | 国产精品69毛片高清亚洲 | 亚洲免费网| 亚洲麻豆 | 日本精品网站 | 日本三级全黄三级三级三级口周 | 毛片国产 | 精品日韩一区 | 成人在线视频免费看 | 亚洲成人免费视频在线 | 美女一区二区在线观看 | 91人人在线 | 午夜欧美一区二区三区在线播放 | 9999国产精品欧美久久久久久 | 天天色天天色 | 精品美女久久久 | 伊人网伊人 | 国产99在线 | 欧美 | 在线免费观看黄a | 中文字幕亚洲在线 | 久久久久精 | 欧美一级片a | 欧美一区二区三区在线 | 日韩免费电影 | 午夜精品91 | 亚洲精品在线视频 | 91精品国产91久久久久久密臀 | 中文字幕免费视频 | 亚洲一区二区三区桃乃木香奈 | 日本亚洲精品 | 日韩伦理一区二区 | 91精品久久久久久久久中文字幕 | 久久婷婷麻豆国产91天堂 | 99久久久无码国产精品 | 男女av| 国产999精品久久久久久 | 91大神在线资源观看无广告 | 欧美中文字幕一区二区 | 精品自拍视频 | 亚洲精品一区二区三区蜜桃久 |