EF基本方法

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data.Objects;
using System.Data.Common;

namespace QueryString
{
    class Program
    {
        static void Main(string[] args)
        {
            WanceMISEntities MISData = new WanceMISEntities();
            ObjectQuery<Intern> intern = MISData.Intern;//第一种访问方式
            ObjectQuery<DbDataRecord> intern1 = new ObjectQuery<DbDataRecord>("select it.InternID,it.InternPlace from WanceMISEntities.Intern as it", MISData);//第二种访问方式
            ObjectQuery<int> intern2 = new ObjectQuery<int>("select value count(it.InternID) from WanceMISEntities.Intern as it ", MISData);
           
            foreach (var item in intern1)
            {
                //Console.WriteLine("{0},{1}",item.InternID,item.InternPlace);
                Console.WriteLine("{0},{1}",item[0].ToString(),item[1].ToString());
            }
            foreach (var item in intern2)
            {
                Console.WriteLine("个数为:{0}",item.ToString());
            }
            bool b = MISData.Intern.All(s => s.InternID == "1");//判断集合中是否所有元素都满足某一条件
            if (b == true)
            {
                Console.WriteLine("正确");
            }
            bool p = MISData.Intern.Any(s => s.InternID == "0");//判断集合中是否有元素满足某一条件
            if (p == true)
            {
                Console.WriteLine("正确");
            }
            else
            {
                Console.WriteLine("错误");
            }
            IQueryable<Intern> internlist = MISData.Intern.Take(3);//获取集合的前三个元素
            foreach (var item in internlist)
            {
               
                Console.WriteLine("{0},{1}",item.InternID,item.InternPlace);
            }
            IQueryable<Intern> internlist1 = MISData.Intern.OrderBy(s => s.InternID).Skip(0);//跳过集合的前n个元素 注:Linq To Entity 要求必须先OrderBy
            foreach (var item in internlist1)
            {

                Console.WriteLine("{0},{1}", item.InternID, item.InternPlace);
            }
            Intern internlist2 = MISData.Intern.First();//无选择条件的
            Intern internlist3 = MISData.Intern.First(s=>s.InternID=="1");//有选择条件的
            Console.WriteLine("{0},{1}", internlist2.InternID, internlist2.InternPlace);
            Intern internlist4 = MISData.Intern.FirstOrDefault(s => s.InternID == "1");//集合中的第一个元素,没有则返回类型默认值,对象型默认值为null
            if (internlist4 != null)
            {
                Console.WriteLine("有数据");
            }
            IQueryable<Intern> internlist5 = MISData.Intern.Where(s => s.InternID == "1");//用LinqExpressions为条件进行查询/GroupBy()来进行分组
            if (internlist5 != null)
            {
                Console.WriteLine("呦吼");
            }
            IQueryable<Intern> internlist6 = MISData.Intern.Distinct();//过滤集合中的相同项
            IQueryable<Intern> internlist7 = MISData.Intern.OrderByDescending(s => s.InternID);//排序升,排序降
            IQueryable<Intern> internlist8 = MISData.Intern.OrderByDescending(s => s.InternID).ThenByDescending(q=>q.InternDesc);//再次排序
            //decimal d =MISData.Intern.Sum(s=>s.InternID);
            //decimal m = MISData.Intern.Average(s=>s.InternID);
            var max = MISData.Intern.Max(s => s.InternID);//获取最大值Min()为最小值
            Console.WriteLine(max);
            int x = MISData.Intern.Count();//计算数目
            Console.WriteLine(x);
            long y = MISData.Intern.LongCount();//长类型的数目
            Console.WriteLine(y);
            IQueryable<Intern> list1 = MISData.Intern.Where(s => s.InternID == "1");
            IQueryable<Intern> list2 = MISData.Intern.Where(s => s.InternID == "2");
            IQueryable<Intern> list = list1.Concat(list2);//或者用Union()/UnionAll()来合并
            IQueryable<Intern> list0 = list1.Except(list2);//排除,或者用Intersect()方法表示相交的意思/Join()来连接
            var Lquery = MISData.Intern.Select(s => new {a=s.InternID,s.InternPlace});//选择
            //var v = query1.GroupJoin(query2, temp1 => temp1.ItemID, temp2 => temp2.ItemID, (temp1, temp2) => new { temp1.ItemID, temp1.ItemMatter, 个数 = temp2.Count() }); //用GroupJoin连接组合
            //List<Intern> li =MISData.Intern.ToList();
            //Intern r = list.Aggregate(( x,  y) => new Intern() { ItemValue = x.ItemValue + y.ItemValue });
            //List<Intern> li1 = MISData.Intern.ToList();

            //IEnumerable<Intern> v = list.TakeWhile(s => s.InternID >= 2); //TakeWhile或用SkipWhile()
            IEnumerable<Intern> li2 = MISData.Intern.AsEnumerable();

            IEnumerable<Intern> v = list.Reverse(); //Reverse()
            Intern li3 = li2.Last();//last()或者为LastOrDefault()同理Single(),SingleOrDefault(),Contains (),Distinct()
            List<Intern> li4 = MISData.Intern.ToList();
            Intern i1 = li4.ElementAt(0);//第几个元素
            Intern i2 = li4.ElementAtOrDefault(0);//SelectMany ()同理
          
            Intern r = new Intern();
            r.InternID = "1";
            var ww = li4.DefaultIfEmpty(r);
            Console.WriteLine(ww);
            //bool b = list1.SequenceEqual(list2);
             }
 }
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值