数据类型Entity Framework

来源:互联网 发布:kafka golang group 编辑:程序博客网 时间:2024/05/17 06:04
1、         数据模型特点
a/支持多种数据库(SqlOracleDb2);
b/包含多种数据映射引擎,这些引擎可以使用绝大部分常用的数据库,并能很好的支持存储过程;
c/可以使用Visual 的集成工具创建实体数据模型,根据现有的数据库自动生成实体数据模型,可以从模型生成数据库
d/Code First功能,可以用来通过代码创建实体数据模型,也可以将现有的数据模型映射到已有的数据库,或者从实体数据模型生成数据库
e/可以方便的集成到各种类型的.NET项目中
自定义数据模型:
VisualStudio中自动创建基于Linq to SQLEntity FrameWork的数据模型并不一定完全符合数据显示或输入输出的要求,需要通过创建自定义数据模型来辅助项目开发
ORM框架
Oobject)对应程序中的类;
RRelation)对应数据库当中的数据表;
MMapping)表示程序中对象和数据库中关系表的映射关系,常用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/聚合查询
注意:只能用函数式实现查询(MAXMINAVGSUMCOUNT
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 负责连接表;onequals指定关联字段
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 0