Entity Framework 数据上下文的一些操作

news/2024/7/7 15:59:07

 

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace ModelFirst
{
    class Program
    {
        static void Main(string[] args)
        {
            DataModelContainer db = new DataModelContainer();

            #region 关联实体插入数据库
            //创建一个309   创建学生放到数据库里面

            ////创建班级
            //ClassInfo classInfo = new ClassInfo()
            //                          {

            //                              CName = "309",
            //                              Remark = "dotnet班"
            //                          };
            ////创建学生
            //Student student1 = new Student();
            //student1.StuName = "小李";

            //student1.ClassInfo = classInfo;

            ////创建学生
            //Student student2 = new Student();
            //student2.StuName = "小马";

            //student2.ClassInfo = classInfo;


            //db.Student.AddObject(student1);
            //db.Student.AddObject(student2);
            //db.ClassInfo.AddObject(classInfo);

            //db.SaveChanges();


            ////自动增长的主键,在插入完数据之后,自动将自动增长的id赋值回实体的主键。
            //Console.WriteLine(classInfo.ID); 
            #endregion

            #region 第二种延迟加载机制: 关联实体如果没有被加载的话,自动去加载关联实体数据

            //// classinfo left join   studen on c.id==studen.classid
            ////.Include("Student") 最终胜出的是sql语句是直接将两个表进行外连接然后将数据一块查询出来

            //var temp = from c in db.ClassInfo.Include("Student")
            //           where c.ID < 10
            //           select c;

            //foreach (var classInfo in temp)
            //{
            //    Console.WriteLine("class:{0}", classInfo.ID);
            //    //第二种延迟加载机制: 关联实体如果没有被加载的话,自动去加载关联实体数据
            //    foreach (var stu in classInfo.Student)
            //    {
            //        Console.WriteLine("\t\tstu:--{0}", stu.ID);
            //    }
            //}

            #endregion


            #region 本地集合和离线集合的区别
            //var temp1 = from s in db.ClassInfo
            //            select s;

            //var temp2 = from c in temp1
            //            where c.ID > 1
            //            select c;

            //foreach (var classInfo in temp2)
            //{
            //    Console.WriteLine(classInfo.ID);
            //}


            ////ToList  ToArrary  AsEnumable :内存型的集合,初始化集合后,立即将数据加载到内存里面来。
            //var temp3 = from c in temp1.ToList()
            //            where c.ID > 1
            //            select c;
            //foreach (var classInfo in temp3)
            //{
            //    Console.WriteLine(classInfo.ID);
            //} 
            #endregion


            #region lambda查询
            ////查询某个表里面的某几个列
            ////linq to EF 提供了查询部分数据的功能
            //var temp = from c in db.ClassInfo
            //           where c.ID > 0
            //           select new { ID = c.ID, MyRemark = c.Remark, Num = c.Student.Count, demo = "你大爷的" };


            //foreach (var VARIABLE in temp)
            //{
            //    Console.WriteLine("id:{0}count:{1}{2}", VARIABLE.ID, VARIABLE.Num, VARIABLE.demo);
            //}



            ////lambad
            //var tempLambda = db.ClassInfo
            //    .Where<ClassInfo>(c => c.ID > 0 && c.ID < 10)
            //    .Select(c => new { id = c.ID, name = c.CName });

            //foreach (var VARIABLE in tempLambda)
            //{
            //    Console.WriteLine(VARIABLE.id);
            //}

            #endregion


            //分页查询:
            var pageData = db.Student
                .Where<Student>(s => s.ID < 13)//过滤
                .OrderByDescending(c => c.ID)//降序排序
                .Skip<Student>(2)//越过多少条数据
                .Take<Student>(2);//取多少条数据

            foreach (var student in pageData)
            {
                Console.WriteLine(student.ID);
            }

            Console.ReadKey();


        }
    }
}

 

转载于:https://www.cnblogs.com/chaohome/p/3562056.html


http://www.niftyadmin.cn/n/670901.html

相关文章

敏捷测试的团队构成

各自分离的功能小组会让敏捷团队更困难。持续的交流至关重要。团队成员需要互相亲密地工作&#xff0c;不管工作是通过虚拟环境还是在同一个地点完成。敏捷测试专家Lisa和Janet分享了敏捷测试团队的组织经验。 独立的质量保证团队 许多组织&#xff0c;不管大还是小&#xff0c…

采购订单模板_建筑模板成本只升不降,涨价势不可挡!

点击上面微信号关注我关注我哟☀ 点木通股东会员单位名企品鉴&#xff0c;全国木材模板库存资源发布&#xff0c;建筑木材模板价格行情每日更新。看建筑木材模板行情&#xff0c;就上点木通&#xff0c;点木通&#xff0c;一点就通&#xff01;以你为目标&#xff0c; 跟着你的…

EasyARM i.mx287学习笔记——minicom配置和使用

0 前言在windows中有很多串口调试软件&#xff0c;例如putty。而ubuntu中也有很多串口调试软件&#xff0c;其中最简单实用的便是minicom了。本文说明虚拟机中如何使用minicom进行串口调试&#xff0c;具体内容包括虚拟机中载入USB设备&#xff0c;查看USB设备是否存在&#xf…

同步协议解析

SyncML协议解析 参考文档和说明[1] http://www.open-open.com/doc/view/513f6ff6c14a416c993af6703b827fc8 [2] http://technical.openmobilealliance.org/tech/affiliates/syncml/syncmlindex.html [3] http://xml.coverpages.org/syncML.html 转载于:https://www.cnblogs.com…

EasyARM i.mx287学习笔记——通过modbus tcp控制GPIO

0 前言本文使用freemodbus协议栈&#xff0c;在EasyARM i.mx287上实现了modbus tcp从机。在该从机中定义了线圈寄存器&#xff0c;其中线圈寄存器地址较低的4位和EasyARM的P2.4至P2.5关联&#xff0c;通过modbus指令可控制GPIO的输出。本文修改自freemodbus 示例LINUXTCP&#…

python压缩算法_图文详解LZ77压缩算法编码Python实现原理

前言LZ77算法是无损压缩算法&#xff0c;由以色列人Abraham Lempel发表于1977年。LZ77是典型的基于字典的压缩算法&#xff0c;现在很多压缩技术都是基于LZ77。鉴于其在数据压缩领域的地位&#xff0c;本文将结合图片和源码详细介绍其原理。首先介绍几个专业术语。1.lookahead …

Oracle RAC基本维护指令

所有实例和服务的状态 $ srvctl status database -d orcl Instance orcl1 is running on node linux1 Instance orcl2 is running on node linux2 单个实例的状态 $ srvctl status instance -d orcl -i orcl2 Instance orcl2 is running on node linux2 在数据库全局命名服务的…

健康男人的贴身体检计划

[选稿]潘春颖 [来源]太平洋女性网 2007-11-09 09:41:20还记得你最近一次去看牙医是什么时候吗&#xff1f;这一年中你的视力有没有什么变化&#xff1f;坐办公室或是开车的时候&#xff0c;背部有不适感吗&#xff1f;是不是听说老同学胆固醇偏高&#xff0c;自己也有点担心&…