您好,登錄后才能下訂單哦!
LINQ中怎么自定義業(yè)務,很多新手對此不是很清楚,為了幫助大家解決這個難題,下面小編將為大家詳細講解,有這方面需求的人可以來學習下,希望你能有所收獲。
LINQ TO SQL很好很強大,它幾乎包含了我們能夠想到的所有與數(shù)據(jù)庫有關的操作,甚至也包含了一些我們可能都沒有想到的。
但不管怎樣,也許我們需要在LINQ TO SQL的操作中添加一個LINQ自定義業(yè)務邏輯,例如在插入某個實體的時候編寫日志等等。如何實現(xiàn)這樣的功能呢?
其實這一點,LINQ TO SQL在設計的時候也考慮到了。我們可以打開那個dtml文件的designer.cs文件,我們發(fā)現(xiàn)有些隱藏的代碼
首先,我們看到NorthwindDataContext這個類型是一個局部類型(Partial Class),而且上述定義的一些方法也是局部方法(Partial Method)
局部方法是C# 3.0的新增特性。它使用在如下場景:
某個方法可有可無。通過partial 關鍵字聲明的目的是,可以讓其他地方代碼可以調(diào)用它。但如果該方法最終沒有被實現(xiàn),那么包括方法聲明以及調(diào)用代碼都會被刪除掉。
這個特性與虛方法,抽象方法都不同。
假設我們需要在InsertCustomer的時候添加一些業(yè)務邏輯,那么該怎么做呢?
using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace Model { public partial class NorthwindDataContext { partial void InsertCustomer(Customer instance) { //這里可以實現(xiàn)自己的保存邏輯,根據(jù)傳入的一個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(); }
看完上述內(nèi)容是否對您有幫助呢?如果還想對相關知識有進一步的了解或閱讀更多相關文章,請關注億速云行業(yè)資訊頻道,感謝您對億速云的支持。
免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。