EF数据库优先模式(三)
今天2018年4月1日,呼叫王伟,81192,收到请返航!
接上次说,本节将LINQ以及lambda表达式
LINQ是C#里面针对SQL Server特有的数据访问操作方法,通俗一点说就是类似于写SQL语句一样,都是对数据库进行操作
var temp = (from pt in db.T_UserInfo
select pt
).ToList();
上述代码就是LINQ的查询操作,下面是写LINQ的基本方式,这个有很多例子可以看,就不再一一列举了
var temp=from pt in table
select pt
where pt.colums>条件
orderby pt.colums descing
再看下下面我实现查询User表,并把数据存储到List里面的操作,就实现了LINQ执行查询的操作
public List<GxUserInfo> LoadAll()
{
try
{
T_BBSEntities db = new T_BBSEntities();
var temp = (from pt in db.T_UserInfo
select pt
).ToList();
if(temp.Count==)
{
return null;
}
else
{
List<GxUserInfo> GxUser = new List<GxUserInfo>();
temp.ForEach(e=>GxUser.Add(LoadFormModel(e)));
return GxUser;
}
}
catch(Exception ex)
{
return null;
} }
这里定义的是一个查询用户表所有数据的操作,如果不为空,就把数据给添加到List类型的GxUser里面,再进行调用
这里面就用到了Lambda表达式
e=>GxUser.Add(LoadFormModel(e))这里就是一个遍历添加的方法,
LoadFormModel(e)是用户数据模型,不同于EF模型及其他数据模型,这里是对模型定义的数据类型进行赋值操作
public GxUserInfo LoadFormModel(T_UserInfo Model)
{
GxUserInfo UserInfo = new GxUserInfo
{
ID=Model.ID,
UserName = Model.UserName,
PassWord = Model.PassWord,
Sex = Model.Sex,
Addr=Model.Addr,
PhoneNum=Model.PhoneNum };
return UserInfo;
}
然后可以自己定义其他方法,比如我要根据用户ID来查询数据,我就会这么做
public GxUserInfo LoadSpecId(int id)
{
try
{
T_BBSEntities db = new T_BBSEntities();
var temp = from pt in db.T_UserInfo
where pt.ID == id
select pt;
return temp.Any() ? LoadFormModel(temp.First()) : null;
}
catch(Exception ex)
{
return null;
}
}
后面就可以直接调用这里定义的方法了,然后进行业务逻辑上的处理等等,所以LINQ还是很便捷的一种操作方式
而Lambda表达式最多的是对数据模型的操作,这个后面单独再做个笔记说Lambda表达式的写法及用法了,用法很多,也很强大
EF数据库优先模式(三)的更多相关文章
- EF数据库优先模式(一)
C#中EF模式,讲述个人在做项目时用到的一些思路以及方法 EF数据模型有三种方式,database优先,model优先,Code优先,个人在做项目时用到的是database优先,以后再说其他的方式 d ...
- EF数据库优先模式(二)
接着上一节的内容,建立好EF数据模型(DataFirst)之后,创建一个借口类,将公用的借口放到接口类里面 public interface IObjectLoader<T,TM> { ...
- 五:MVC使用数据库优先(DatabaseFirst)的方式创建数据模型
1. ORM概念 2. EF的DatabaseFirst模式使用 1. ORM简介 对象关系映射(Object Relational Mapping,简称ORM) ORM技术特点: 1.提高了开发效率 ...
- 【EF】EntityFramework 更新数据库字段的三种方法
实体类 public class TestDbContext : DbContext { public DbSet<Test> Tests { get; set; } public Tes ...
- 数据库优先生成EF CRUD演示
①准备我们的数据库: Northwind ②新建 实体数据模型,由数据库优先创建 ③创建控制器,这里我们只针对了Customers这张表做演示,实际会复杂的多 注:你可以把上面两步合成一步来写,创建控 ...
- Entity Framework 之Database first(数据库优先)&Model First(模型优先)
一.什么是Entity Framework 1.1 实体框架(EF)是一个对象关系映射器,使.NET开发人员使用特定于域的对象与关系数据.它消除了需要开发人员通常需要编写的大部分数据访问代码.简化了原 ...
- 构建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后台管理系统(4)-构建项目解决方案 创建EF DataBase Frist模式
原文:构建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后台管理系统(4)-构建项目解决方案 创建EF DataBase Frist模式 进行本次文章之前,我们可能需要补充一些 ...
- C# ORM—Entity Framework 之Database first(数据库优先)&Model First(模型优先)(一)
一.什么是Entity Framework 1.1 实体框架(EF)是一个对象关系映射器,使.NET开发人员使用特定于域的对象与关系数据.它消除了需要开发人员通常需要编写的大部分数据访问代码.简化了原 ...
- 第十七节: EF的CodeFirst模式的四种初始化策略和通过Migration进行数据的迁移
一. 四种初始化策略 EF的CodeFirst模式下数据库的初始化有四种策略: 1. CreateDatabaseIfNotExists:EF的默认策略,数据库不存在,生成数据库:一旦model发生变 ...
随机推荐
- 【BZOJ2001】 [Hnoi2010]City 城市建设
BZOJ2001 [Hnoi2010]City 城市建设 Solution 我们考虑一下这个东西怎么求解? 思考无果...... 咦? 好像可以离线cdq,每一次判断一下如果这条边如果不选就直接删除, ...
- awk的匹配
关系运算符 含义 用法示例 < 小于 x < y > 大于 x > y
- [学习笔记]区间dp
区间 \(dp\) 1.[HAOI2008]玩具取名 \(f[l][r][W/I/N/G]\) 表示区间 \([l,r]\) 中能否压缩成 \(W/I/N/G\) \(Code\ Below:\) # ...
- BigDecimalUtils
package com.sprucetec.tms.utils; import java.math.BigDecimal;import java.text.SimpleDateFormat;impor ...
- 在express3里用ejs模版引擎时,如何使其支持'.html'后缀
①express 默认jade模板,改为ejs模板,需执行以下命令: express -e --ejs ②在app.js中,将 app.set('view engine', 'jade'); 替换为 ...
- 解放双手 | Jenkins + gitlab + maven 自动打包部署项目
前言 记录 Jenkins + gitlab + maven 自动打包部署后端项目详细过程! 需求背景 不会偷懒的程序员不是好码农,传统的项目部署,有时候采用本地手动打包,再通过ssh传到服务器部署运 ...
- [Leetcode]146.LRU缓存机制
Leetcode难题,题目为: 运用你所掌握的数据结构,设计和实现一个 LRU (最近最少使用) 缓存机制.它应该支持以下操作: 获取数据 get 和 写入数据 put . 获取数据 get(key ...
- 安装MySQL-python时报错
(py27) [root@test SimpletourDevops]# pip install MySQL-python DEPRECATION: Python 2.7 will reach the ...
- oracle ASM安装过程中UDEV实现磁盘绑定
UDEV相较于ORACLE 自己的ASMlib 相对比较成熟. 文章转载自: Maclean Liu的个人技术博客 [http://www.oracledatabase12g.com/] 在< ...
- 安装Centos7 随手记
1.老笔记本安装Centos7 配置:酷睿I3 内存8G 2.原有系统Win7 将原来的硬盘空间,调整出60G 给Centos7 用. 3.安装Centos7 图形介面的,和windows安装过程类 ...