Linq To SQL數(shù)據(jù)概括
學(xué)習(xí)Linq時(shí),經(jīng)常會遇到Linq To SQL數(shù)據(jù)問題,這里將介紹Linq To SQL數(shù)據(jù)問題的解決方法。
很久之前,在我剛學(xué)數(shù)據(jù)庫編程的時(shí)候,就希望直接建一個(gè)數(shù)據(jù)庫通用的操作類, 即寫 Insert(類實(shí)例), 那么剩下的工作就交給底層代碼來實(shí)現(xiàn)如何Insert。 現(xiàn)在接觸了Linq, 感覺離這個(gè)夢想的實(shí)現(xiàn)已經(jīng)不遠(yuǎn)了。
下面就分享一下我的源代碼,很簡單,估計(jì)剛學(xué)Linq的人也能看懂。
1. 建一個(gè)project 命名為DLinq ,添加一個(gè)Linq To SQL數(shù)據(jù)源,這里以經(jīng)典的Northwind數(shù)據(jù)庫為例,命名為NWDB.dbml 。

2. 建另一個(gè)Project 為DAL層 ,添加一個(gè)Table工廠, 這樣我們就可以通過實(shí)體來獲得Table
- using System;
 - using System.Collections.Generic;
 - using System.Linq;
 - using System.Text;
 - namespace DAL
 - {
 - public staticclass TableFactory
 - {
 - public static System.Data.Linq.Table<T> CreateTable<T>() where T : class
 - {
 - return Database.NWDB.GetTable<T>();
 - }
 - }
 - }
 
- using System;
 - using System.Collections.Generic;
 - using System.Linq;
 - using System.Text;
 - namespace DAL
 - {
 - publicstatic class Database
 - {
 - private static DLinq.NWDBDataContext _NWDB = null;
 - public static DLinq.NWDBDataContext NWDB
 - {
 - get
 - {
 - if (_NWDB == null)
 - _NWDB = new DLinq.NWDBDataContext();
 - return _NWDB;
 - }
 - }
 - }
 - }
 
3. 借助Linq的特性,現(xiàn)在就可以寫通用的數(shù)據(jù)庫操作類了
- using System;
 - using System.Collections.Generic;
 - using System.Linq;
 - using System.Text;
 - namespace DAL
 - {
 - public class Utility
 - {
 - public static void Insert<T>(T TEntity) where T : class
 - {
 - var table = TableFactory.CreateTable<T>();
 - table.InsertOnSubmit(TEntity);
 - }
 - public static IEnumerable<T> Where<T>(Func<T, bool> predicate) where T : class
 - {
 - var table = TableFactory.CreateTable<T>();
 - return table.Where(predicate).AsEnumerable();
 - }
 - public static void SubmitChanges()
 - {
 - Database.NWDB.SubmitChanges();
 - }
 - }
 - }
 
【編輯推薦】















 
 
 
 
 
 
 