linq to sql DAL
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data.Linq;namespace DAL
{
public class LinQBaseDao
{
/// <summary>
/// 查询所有的记录
/// </summary>
/// <typeparam name="T"></typeparam>
/// <param name="dc"></param>
/// <returns></returns>
public IEnumerable<T> Query<T>(DataContext dc) where T:class
{
return dc.GetTable<T>().AsEnumerable<T>() ;
}
/// <summary>
/// 按条件查询记录
/// </summary>
/// <typeparam name="T"></typeparam>
/// <param name="dc"></param>
/// <param name="fun"></param>
/// <returns></returns>
public IEnumerable<T> Query<T>(DataContext dc, Func<T,bool> fun) where T : class
{
return dc.GetTable<T>().Where<T>(fun).AsEnumerable<T>();
}/// <summary>
/// 查询单条 返回实体
/// </summary>
/// <typeparam name="T"></typeparam>
/// <param name="fun"></param>
/// <returns></returns>
public T Single<T>(DataContext dc,Func<T, bool> fun) where T : class
{
return dc.GetTable<T>().Single<T>(fun);
}/// <summary>
/// 添加一条记录
/// </summary>
/// <typeparam name="T"></typeparam>
/// <param name="dc"></param>
/// <param name="tentity"></param>
public void InsertOne<T>(DataContext dc, T tentity) where T : class
{
var table = dc.GetTable<T>();
table.InsertOnSubmit(tentity);
dc.SubmitChanges();
}/// <summary>
/// 添加多条记录
/// </summary>
/// <typeparam name="T"></typeparam>
/// <param name="dc"></param>
/// <param name="tentitys"></param>
public void InsertToMany<T>(DataContext dc, IEnumerable<T> tentitys) where T : class
{
var table = dc.GetTable<T>();
table.InsertAllOnSubmit(tentitys);
dc.SubmitChanges();
}/// <summary>
/// 删除单条数据
/// </summary>
/// <typeparam name="T"></typeparam>
/// <param name="dc"></param>
/// <param name="tentity"></param>
/// <param name="fun"></param>
public void DeleteOne<T>(DataContext dc, T tentity, Func<T, bool> fun) where T : class
{
var table = dc.GetTable<T>();
var result = table.Where<T>(fun).First<T>();
table.DeleteOnSubmit(result);
dc.SubmitChanges();
}
/// <summary>
/// 按条件删除多条数据
/// </summary>
/// <typeparam name="T"></typeparam>
/// <param name="dc"></param>
/// <param name="tentitys"></param>
/// <param name="fun"></param>
public void DeleteToMany<T>(DataContext dc, IEnumerable<T> tentitys, Func<T, bool> fun) where T : class
{
var table = dc.GetTable<T>();
var result = table.Where<T>(fun).AsEnumerable<T>();
table.DeleteAllOnSubmit<T>(result);
dc.SubmitChanges();
}/// <summary>
/// 删除多条数据
/// </summary>
/// <typeparam name="T"></typeparam>
/// <param name="dc"></param>
/// <param name="tentitys"></param>
public void DeleteToManyByCondition<T>(DataContext dc, IEnumerable<T> tentitys) where T : class
{
var table = dc.GetTable<T>();
table.DeleteAllOnSubmit<T>(tentitys);
dc.SubmitChanges();
}/// <summary>
/// LINQ更新方法
/// </summary>
/// <typeparam name="T"></typeparam>
/// <param name="dc"></param>
/// <param name="fun"></param>
/// <param name="tentity"></param>
/// <param name="action"></param>
public void Update<T>(DataContext dc, Func<T, bool> fun, T tentity, Action<T> action) where T : class
{
var table = dc.GetTable<T>().Single<T>(fun);
//var table = dc.GetTable<T>().Where<T>(fun).Single<T>();
action(table);
dc.SubmitChanges();
}
}
}
linq to sql DAL的更多相关文章
- .NET面试题系列[14] - LINQ to SQL与IQueryable
.NET面试题系列目录 名言警句 "理解IQueryable的最简单方式就是,把它看作一个查询,在执行的时候,将会生成结果序列." - Jon Skeet LINQ to Obje ...
- Linq to SQL 类型的对象图包含循环,如果禁用引用跟踪,择无法对其进行序列化。
在使用Linq to SQL并序列化一个数据对象的时候报System.InvalidOperationException异常,序列化类型 的对象时检测到循环引用. 异常信息(部分): ---> ...
- LINQ to Sql系列一 增,删,改
首先,我们来了解一下LINQ to sql 是什么,我想从以下几点来做说明. 1,LINQ是从.net framework 3.0开始引入的的语言特性,主要是用来对集合数据进行操作的.2,LINQ t ...
- LINQ to SQL语句(7)之Exists/In/Any/All/Contains
适用场景:用于判断集合中元素,进一步缩小范围. Any 说明:用于判断集合中是否有元素满足某一条件:不延迟.(若条件为空,则集合只要不为空就返回True,否则为False).有2种形式,分别为简单形式 ...
- 年终巨献 史上最全 ——LINQ to SQL语句
LINQ to SQL语句(1)之Where 适用场景:实现过滤,查询等功能. 说明:与SQL命令中的Where作用相似,都是起到范围限定也就是过滤作用的,而判断条件就是它后面所接的子句.Where操 ...
- LINQ to SQL语句(20)之存储过程
在我们编写程序中,往往需要一些存储过程,在LINQ to SQL中怎么使用呢?也许比原来的更简单些.下面我们以NORTHWND.MDF数据库中自带的几个存储过程来理解一下. 1.标量返回 在数据库中, ...
- LINQ to SQL语句(19)之ADO.NET与LINQ to SQL
它基于由 ADO.NET 提供程序模型提供的服务.因此,我们可以将 LINQ to SQL 代码与现有的 ADO.Net 应用程序混合在一起,将当前 ADO.NET 解决方案迁移到 LINQ to S ...
- LINQ to SQL语句(18)之运算符转换
运算符转换 1.AsEnumerable:将类型转换为泛型 IEnumerable 使用 AsEnumerable<TSource> 可返回类型化为泛型 IEnumerable 的参数.在 ...
- LINQ to SQL语句(17)之对象加载
对象加载 延迟加载 在查询某对象时,实际上你只查询该对象.不会同时自动获取这个对象.这就是延迟加载. 例如,您可能需要查看客户数据和订单数据.你最初不一定需要检索与每个客户有关的所有订单数据.其优点是 ...
随机推荐
- mybatis---------insert,delete ,update的批量操作
在数据量大的情况下,可以使用批量 提高性能 批量插入insert 方法一: <insert id="insertbatch" parameterType="java ...
- angular 搜索记录保留
#方法1: 点击后退到home后,再点击搜索, locationChangeStart 事件会多次触发. # $scope.keyword = $location.search().search # ...
- gets()
C: #include <stdio.h> //这个头文件包含gets()函数,这个函数在ISO/IEC 9899 2011(C11)标准中被移除 int main(void) { ...
- hdu_3804_Query on a tree(树链剖分)
题目连接:http://acm.hdu.edu.cn/showproblem.php?pid=3804 题意:给你一棵树,然后给出树上边的价值,然后给出x,y,问从1到x的边上不超过y的最大值为多少 ...
- LeetCode OJ 217.Contains Duplicate
Given an array of integers, find if the array contains any duplicates. Your function should return t ...
- nefu 72 N!
Description Given an integer N(0 ≤ N ≤ 10000), your task is to calculate N! Input One N in one line, ...
- %02d
%d表示打印整型的,%2d表示把整型数据打印最低两位,%02d表示把整型数据打印最低两位,如果不足两位,用0补齐所以打印出来就是02了
- 决策树J48算法
1.J48原理 基于从上到下的策略,递归的分治策略,选择某个属性放置在根节点,为每个可能的属性值产生一个分支,将实例分成多个子集,每个子集对应一个根节点的分支,然后在每个分支上递归地重复这个过程.当所 ...
- 终于购入Mac mini,发现HDMI接口与显示器不兼容,网购了一个VGA转换插头
Mac mini买到了,最便宜的i5,$647,足够了. 发现路边捡的显示器没有HDMI接口,所以在学校图书馆问了一下IT 技术支持,给我推荐了ebay上$10块钱的转换器. 名字叫 Mini Dis ...
- Hadoop 中关于 map,reduce 数量设置
map和reduce是hadoop的核心功能,hadoop正是通过多个map和reduce的并行运行来实现任务的分布式并行计算,从这个观点来看,如果将map和reduce的数量设置为1,那么用户的任务 ...