linq 方法查找
·Distinct - 过滤集合中的相同项;延迟
·Union - 连接不同集合,自动过滤相同项;延迟
·Concat - 连接不同集合,不会自动过滤相同项;延迟
·Intersect - 获取不同集合的相同项(交集);延迟
·Except - 从某集合中删除其与另一个集合中相同的项;延迟
·Skip - 跳过集合的前n个元素;延迟
·Take - 获取集合的前n个元素;延迟
·SkipWhile - 直到某一条件成立就停止跳过;延迟
·TakeWhile - 直到某一条件成立就停止获取;延迟
·Single - 根据表达式返回集合中的某一元素;不延迟
·SingleOrDefault - 根据表达式返回集合中的某一元素(如果没有则返回默认值);不延迟
·Reverse - 对集合反向排序;延迟
·SelectMany - Select选择(一对多);延迟
·First - 返回集合中的第一个元素;不延迟
·FirstOrDefault - 返回集合中的第一个元素(如果没有则返回默认值);不延迟
·Last - 返回集合中的最后一个元素;不延迟
·LastOrDefault - 返回集合中的最后一个元素(如果没有则返回默认值)
·ElementAt - 返回集合中指定索引的元素;不延迟
·ElementAtOrDefault - 返回集合中指定索引的元素(如果没有则返回默认值);不延迟
·Contains - 判断集合中是否包含有某一元素;不延迟
·Any - 判断集合中是否有元素满足某一条件;不延迟
·All - 判断集合中是否所有元素都满足某一条件;不延迟
·Count - 返回集合中的元素个数,返回int;不延迟
·LongCount - 返回集合中的元素个数,返回long;不延迟
·Sum - 集合应为数字类型集合,求其和;不延迟
·Min - 返回集合的最小值;不延迟
·Max - 返回集合的最大值;不延迟
·Average - 集合应为数字类型集合,求其平均值;不延迟
·Aggregate - 根据输入的表达式获取一个聚合值;不延迟
·Cast - 将集合转换为强类型集合;延迟
·DefaultIfEmpty - 查询结果为空则返回默认值;延迟
·SequenceEqual - 判断两个集合是否相同;不延迟
·OfType - 过滤集合中的指定类型;延迟
·ToArray - 将集合转换为数组;不延迟
·ToList - 将集合转换为List<T>集合;不延迟
·ToDictionary - 将集合转换为<K, V>集合;不延迟
/// <summary>
/// 事务处理(用DataContext.Connection.BeginTransaction()的方式做事务处理)
/// </summary>
private void TransactionDemo2()
{
int? categoryId = null;
NorthwindDataContext ctx = new NorthwindDataContext();
if (ctx.Connection.State != ConnectionState.Open)
{
ctx.Connection.Open();
}
System.Data.Common.DbTransaction tran = ctx.Connection.BeginTransaction();
ctx.Transaction = tran;
try
{
ctx.AddCategory("test", "test", ref categoryId);
ctx.DeleteCategory(1);
tran.Commit();
}
catch
{
tran.Rollback();
}
}
/// <summary>
/// 事务处理(用System.Transactions.TransactionScope做事务处理),这种方法最好用在SQL2005中
/// </summary>
private void TransactionDemo3()
{
int? categoryId = null;
using (TransactionScope tc = new TransactionScope())
{
try
{
NorthwindDataContext ctx = new NorthwindDataContext();
ctx.AddCategory("test", "test", ref categoryId);
ctx.DeleteCategory(1);
tc.Complete();
}
catch
{ }
}
}