using System;
using System.Collections.Generic;
using System.Linq;
using System.Text; namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
//创建数据库实体
ModelStudentContainer DemoDB = new ModelStudentContainer(); #region 增加数据 ////创建具体实体(表中一行)
//Student stu1 = new Student()
//{
// ID = 1,
// Name = "张飞",
// Age = 20
//};
//Student stu2 = new Student()
//{
// ID = 2,
// Name = "关羽",
// Age = 21
//};
//Student stu3 = new Student()
//{
// ID = 3,
// Name = "赵云",
// Age = 22
//};
//Student stu4 = new Student()
//{
// ID = 4,
// Name = "刘备",
// Age = 23
//};
//Student stu5 = new Student()
//{
// ID = 5,
// Name = "刘表",
// Age = 24
//};
//Student stu6 = new Student()
//{
// ID = 6,
// Name = "刘禅",
// Age = 25
//}; ////将实体stu添加到数据库实体对象中
//DemoDB.Student.AddObject(stu1);
//DemoDB.Student.AddObject(stu2);
//DemoDB.Student.AddObject(stu3);
//DemoDB.Student.AddObject(stu4);
//DemoDB.Student.AddObject(stu5);
//DemoDB.Student.AddObject(stu6); ////保存对数据库的修改
//DemoDB.SaveChanges(); #endregion #region 查询1:一般查询,查询所有数据 //var result = from u in DemoDB.Student
// select u; //foreach (var item in result)
//{
// Console.WriteLine("ID:{0},姓名:{1},年龄:{2}。", item.ID, item.Name, item.Age);
//} #endregion #region 查询2:使用ToList防止延迟加载,拆分子查询 ////这个查询结果可以保存到服务器内存中
//var result1 = (from u in DemoDB.Student
// where u.Age >= 22
// select u).ToList<Student>(); //var result2 = from u in result1
// where u.Name != "赵云"
// select u; //foreach (var item in result2)
//{
// Console.WriteLine("ID:{0},姓名:{1},年龄:{2}。", item.ID, item.Name, item.Age);
//} #endregion #region 查询3:使用Where方法(lambda表达式) ////使用了Where泛型方法,要传入一个lambda表达式
//var result = DemoDB.Student
// .Where<Student>(t => t.ID == 1); //foreach (var item in result)
//{
// Console.WriteLine("ID:{0},姓名:{1},年龄:{2}。", item.ID, item.Name, item.Age);
//} #endregion #region 查询4:Linq分页查询 ////要跳过多少页
//int skipPage;
////每页两条数据
//int countPerPage=2; ////从跳过0页到跳过2页(输出第1-3页)
//for (skipPage = 0; skipPage <= 2; skipPage++)
//{
// var result = DemoDB.Student
////分页必须排序
// .OrderBy(t => t.ID)
////跳过指定页数
// .Skip<Student>(skipPage * countPerPage)
////获取条数
// .Take<Student>(countPerPage); // Console.WriteLine("第{0}页:", skipPage + 1);
////输出查询结果(该页)
// foreach (var item in result)
// {
// Console.WriteLine("ID:{0},姓名:{1},年龄:{2}。", item.ID, item.Name, item.Age);
// } // Console.WriteLine();
//} #endregion #region 查询5:使用匿名类查询多个字段 //var result = from p in DemoDB.Student
// where p.ID < 4
////定义一个包含了ID和Name信息的匿名类
// select new { p.ID, p.Name }; //foreach (var item in result)
//{
////这里无法输出年龄
// Console.WriteLine("ID:{0},姓名:{1}。", item.ID, item.Name);
//} #endregion #region 修改1:修改1条记录 ////这里没有写where字句,会查询出4条记录
//var result = from u in DemoDB.Student
// select u; ////但是这个方法一次只能取出一条记录
////注:First方法如果返回空值则抛异常
//var target = result.FirstOrDefault<Student>();
////所以只修改了查询结果集中的第一条记录
//target.Name = "司马懿"; //DemoDB.SaveChanges(); #endregion #region 修改2:修改多条记录 //var result = from u in DemoDB.Student
// select u; ////使用循环方式,修改所有查询到的记录
//foreach (var item in result)
//{
// item.Age = 10;
//} //DemoDB.SaveChanges(); #endregion #region 删除 //var result = from u in DemoDB.Student
// where u.Name == "关羽"
// select u; ////删除所有查询结果(这里只有一条结果)
//foreach (var item in result)
//{
// DemoDB.Student.DeleteObject(item);
//} //DemoDB.SaveChanges(); #endregion Console.WriteLine("执行完毕!");
Console.ReadKey();
}
}
}

EF+linq的增删改查的更多相关文章

  1. Entity - 使用EF框架进行增删改查 - 模型先行

    模型先行:先创建数据库实体模型,然后再进行数据库的增删改查. 基本步骤是不变的,可参照 <Entity - 使用EF框架进行增删改查 - 数据库先行> 其中的不同是,在创建数据库实体模型的 ...

  2. 用DBContext (EF) 实现通用增删改查的REST方法

    我们用ADO.NET Entity Data Model来生成实体类后,一般都会对这些类进行基本的增删改查操作,如果每个类都要写这些基本的方法,实在太乏味了.下面就是通过step by step的方式 ...

  3. C# 数据操作系列 - 8. EF Core的增删改查

    0.前言 到目前为止,我们看了一下如何声明EF Core的初步使用,也整体的看了下EF Core的映射关系配置以及导航属性的配置. 这一篇,我带大家分享一下,我在工作中需要的EF Core的用法. 1 ...

  4. LINQ的增删改查写法&&组合查询

    .ToList();//返回一个集合,包含查到的所有值: .First();//返回查到的第一条数据,如果查不到会报错: .FirstOrDefault();返回查到的第一条数据,差不到返回一个nul ...

  5. EF框架实增删改查

    数据库链接配置: <connectionStrings> <add name="XxzxWorkEntities" connectionString=" ...

  6. LinQ的增删改查

    全名:LinQ to sql类:集成化的数据访问类.会自动生成,进行数据库数据访问. LinQ的创建: 1.链接数据库:添加--添加新项--找到LINQ to SQL类--名字就叫数据库的名称就好. ...

  7. Entity - 使用EF框架进行增删改查 - 数据库先行

    数据库先行:先创建数据库,然后进行增删查该操作. 要操作的表结构(表名:Tb_Category): 创建一个控制台程序: 添加一个ADO.NET实体数据模型: 1.对控制台程序右键 2.选择ADO.N ...

  8. .Net EF框架的增删改查

    创建上下文对象: WordBoradEntities db = new WordBoradEntities(); 添加: //1.1创建实体对象 User uObj = new User() { uN ...

  9. 使用LinQ进行增删改查

    数据库访问技术: ADO.net EF框架 LinQ LinQ是一种高集成化的数据库访问技术,他将数据库中的表映射成程序中的类 数据库的表名变成类名 数据库的列名变成字段名/属性名 所有的操作都是通过 ...

随机推荐

  1. python GUI尝鲜(但当涉猎,见往事耳)

    第一步:简单的窗口和内容 import tkinter as tk window = tk.Tk() # 窗口obj对象 window.title('my TK') # 窗口名字 window.geo ...

  2. 把myeclipse中html/jsp文件的视图调到只看代码

    烦恼———————————————————— 解决方法: ok---------------------------- *.jsp 同理

  3. 《剑指offer》面试题5—从尾到头打印链表

    重要思路: 这个问题肯定要遍历链表,遍历链表的顺序是从头到尾,而要输出的顺序却是从尾到头,典型的“后进先出”,可以用栈实现. 注意stl栈的使用,遍历stack的方法. #include <io ...

  4. E20190226-hm

    shallow  adj. 浅的,肤浅的; 表面的,皮毛的; (水,器物等) 浅的; (呼吸) 浅的;  n. 浅处; 浅滩;

  5. 洛谷 - UVA11346 - 概率 Probability - 积分

    要是没学过高等数学的积分怎么办呢?可以求助于自适应辛普森法. 容易发现其实这个图形是对称的,我们只要求第一象限就可以了,第一象限如上图. 由于取点是在面积内等概率的,由高中的几何概型可知,所求概率为: ...

  6. MySQL存储引擎的区别

    一.mysql中myisam,innodb和memory三个存储引擎的区别 1.区别:1) MyISAM管理非事务表.提供高速存储和检索,以及全文搜索能力.MyISAM在所有MySQL配置里被支持,是 ...

  7. builtin_shaders-5.3.4f1学习-Unlit/Texture

    // Unlit shader. Simplest possible textured shader. // - no lighting // - no lightmap support // - n ...

  8. 【书评】【不推荐】《TensorFlow:实战Google深度学习框架》(第2版)

    参考书 <TensorFlow:实战Google深度学习框架>(第2版) 这本书我老老实实从头到尾看了一遍(实际上是看到第9章,刚看完,后面的实在看不下去了,但还是会坚持看的),所有的代码 ...

  9. bzoj1139:[POI2009]Wie

    传送门 状压dp,最短路 spfa似乎特别慢 代码: #include<cstdio> #include<iostream> #include<algorithm> ...

  10. 2019最好用的自动化测试工具Top 10,果断收藏!

    经常有人在公众号留言或是后台问我,做自动化测试用哪个工具好,或是学哪门编程语言好呢? 这个时候总是无奈的说: 你应该学习Python 或是Java. 你应该掌握Selenium. 又或者你需要学会jm ...