数据类型Entity Framework

1、数据模型特点
a/支持多种数据库(Sql,Oracle,Db2);
b/包含多种数据映射引擎,这些引擎可以使用绝大部分常用的数据库,并能很好的支持存储过程;
c/可以使用Visual 的集成工具创建实体数据模型,根据现有的数据库自动生成实体数据模型, 可以从模型生成数据库
d/ Code First 功能,可以用来通过代码创建实体数据模型,也可以将现有的数据模型映射到已有的数据库,或者从实体数据模型生成数据库
e/可以方便的集成到各种类型的.NET项目中
自定义数据模型:
VisualStudio中自动创建基于Linq to SQL或Entity FrameWork的数据模型并不一定完全符合数据显示或输入输出的要求,需要通过创建自定义数据模型来辅助项目开发
ORM框架
O(object)对应程序中的类;
R(Relation)对应数据库当中的数据表;
M(Mapping)表示程序中对象和数据库中关系表的映射关系,常用XML文件表述;
定义:不是产品,是实现面向对象的程序设计语言到关系数据库的映射的框架的总称;
2、数据查询
Using(BookStoreEntities db = new BookStoreEntities()){
  //写入操作语句
}
表达式查询 / 函数式实现查询
a/条件查询
var book1 = from b in db.Books where b.Title == “ASP.NET MVC 程序开发” slect b;
var book2 = db.Books.where(b=>b.Title == “ASP.NET MVC 程序开发”);
b/排序和分页
var order1 =( from o in db.Orders orderby o.Num select o).Skip(0).Take(10);
Var order2=db.Orders.OrderBy(o=>o.Num).Skip(0).Take(10);
c/聚合查询
注意:只能用函数式实现查询(MAX,MIN,AVG,SUM,COUNT)
var price=db.Books.Max(b=>b.Price);
var price=db.Books.Min(b=>b.Price);
var price=db.Books.Avg(b=>b.Price);
var price=db.Books.Sum(b=>b.Price);
var num=db.Books.Count;
d/连接查询
var order3=from o in db.Orders join b in db.Books on o.BookId equals b.BookId select o;
说明:join 负责连接表;on和equals指定关联字段
3、数据更新
Using(BookStoreEntities db = new BookStoreEntities()){
  //写入操作语句
}
生命周期:找到被更新的对象;更新对象数据;保存更改
FirstOrDefault()判断查询语句返回结构
SaveChanges()更新数据
var book = db.Books.FirstOrDefault(b=>b.Title==”JavaScript 语言与应用”);
if(book != null){
book.Title=”ASP.NET MVC 程序开发”;
book.Price=30;
db.SaveChanges();}
4、数据添加
var newbook = new Models.Books(){
  AuthorName=””,
  Title=””,
  Price=30
} ;
db.Books.Add(newbook);
db.SaveChanges();
5、数据删除
var book3 = db.Books.FirstOrDefault(b=>b.Title==””);
if(book3 != null)
{
db.Books.Remove(book3);
db.SaveChanges();
}
6、事务处理
//声明事务对象
System.Data.Common.DbTransaction tran = null;
//手动打开链接并创建事务
           dbs.Database.Connection.Open();
           tran = dbs.Database.Connection.BeginTransaction();
           try{
           //找到要买的书籍
                var book4 = dbs.Books.FirstOrDefault(b => b.Title == "ASP.NET MVC 程序开发");
                //确保书籍找到
                if (book4 != null)
                {
               //创建订单
                    var order4 = new Models.Orders()
                     {
                          Num = 1,
                          Address = "",
                          BookId = book4.BookId
                      };
                     //添加订单并保存
dbs.Orders.Add(order4);
                     dbs.SaveChanges();
                     //修改订单数据并保存
                     order4.Address = "北京九棵树";
                     dbs.SaveChanges();
                 }
                 tran.Commit();//提交事务
               }
                catch
                {
                    tran.Rollback();//出现异常回滚事务
                }
                finally {
                    //关闭链接
                    if (dbs != null && dbs.Database.Connection.State != System.Data.ConnectionState.Closed)
                    {
                        tran.Connection.Close();
                    }
                }
7、 库模式数据类型
生命周期:定义接口;确定数据访问类的功能需求;创建该接口的实现类
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值