Linq To SQL数据概括
创始人
2024-06-07 03:00:33
0

学习Linq时,经常会遇到Linq To SQL数据问题,这里将介绍Linq To SQL数据问题的解决方法。

很久之前,在我刚学数据库编程的时候,就希望直接建一个数据库通用的操作类, 即写 Insert(类实例), 那么剩下的工作就交给底层代码来实现如何Insert。 现在接触了Linq, 感觉离这个梦想的实现已经不远了。

下面就分享一下我的源代码,很简单,估计刚学Linq的人也能看懂。

1. 建一个project 命名为DLinq ,添加一个Linq To SQL数据源,这里以经典的Northwind数据库为例,命名为NWDB.dbml 。

Northwind数据库

2. 建另一个Project 为DAL层 ,添加一个Table工厂, 这样我们就可以通过实体来获得Table

  1. using System;  
  2. using System.Collections.Generic;  
  3. using System.Linq;  
  4. using System.Text;  
  5.  
  6. namespace DAL  
  7. {  
  8. public staticclass TableFactory  
  9. {   
  10. public static System.Data.Linq.Table CreateTable() where T : class  
  11. {  
  12. return Database.NWDB.GetTable();  
  13. }  
  14. }  
  1. using System;  
  2. using System.Collections.Generic;  
  3. using System.Linq;  
  4. using System.Text;  
  5.  
  6. namespace DAL  
  7. {  
  8. publicstatic class Database  
  9. {  
  10. private static DLinq.NWDBDataContext _NWDB = null;  
  11.  
  12. public static DLinq.NWDBDataContext NWDB  
  13. {  
  14. get  
  15. {  
  16. if (_NWDB == null)  
  17. _NWDB = new DLinq.NWDBDataContext();  
  18. return _NWDB;  
  19. }  
  20. }  
  21.  
  22. }  

3. 借助Linq的特性,现在就可以写通用的数据库操作类了

  1. using System;  
  2. using System.Collections.Generic;  
  3. using System.Linq;  
  4. using System.Text;  
  5.  
  6. namespace DAL  
  7. {  
  8. public class Utility  
  9. {  
  10. public static void Insert(T TEntity) where T : class  
  11. {  
  12. var table = TableFactory.CreateTable();  
  13. table.InsertOnSubmit(TEntity);  
  14. }  
  15.  
  16. public static IEnumerable Where(Func, bool> predicate) where T : class  
  17. {  
  18. var table = TableFactory.CreateTable();  
  19. return table.Where(predicate).AsEnumerable();  
  20. }  
  21.  
  22. public static void SubmitChanges()  
  23. {  
  24. Database.NWDB.SubmitChanges();  
  25. }  
  26. }  

【编辑推荐】

  1. LINQ to SQL查询分析
  2. LINQ查询架构简单介绍
  3. LINQ to SQL映射关系概述
  4. LINQ To SQL对象模型浅析
  5. LINQ to SQL映射列描述

相关内容

热门资讯

如何允许远程连接到MySQL数... [[277004]]【51CTO.com快译】默认情况下,MySQL服务器仅侦听来自localhos...
如何利用交换机和端口设置来管理... 在网络管理中,总是有些人让管理员头疼。下面我们就将介绍一下一个网管员利用交换机以及端口设置等来进行D...
施耐德电气数据中心整体解决方案... 近日,全球能效管理专家施耐德电气正式启动大型体验活动“能效中国行——2012卡车巡展”,作为该活动的...
20个非常棒的扁平设计免费资源 Apple设备的平面图标PSD免费平板UI 平板UI套件24平图标Freen平板UI套件PSD径向平...
德国电信门户网站可实时显示全球... 德国电信周三推出一个门户网站,直观地实时提供其安装在全球各地的传感器网络检测到的网络攻击状况。该网站...
为啥国人偏爱 Mybatis,... 关于 SQL 和 ORM 的争论,永远都不会终止,我也一直在思考这个问题。昨天又跟群里的小伙伴进行...
《非诚勿扰》红人闫凤娇被曝厕所... 【51CTO.com 综合消息360安全专家提醒说,“闫凤娇”、“非诚勿扰”已经被黑客盯上成为了“木...
2012年第四季度互联网状况报... [[71653]]  北京时间4月25日消息,据国外媒体报道,全球知名的云平台公司Akamai Te...