.NET之EntityFramework框架运用

1.创建EF模型库

创建类库--》添加新建项--》选择ADO.NET实体数据模型--》选择 来自数据库的EF选择器--》配置数据库链接以及相应的数据库--》看底部(将app.Config中链接设置另存为)默认值改成你需要空间名(DemoEntity)--》实体框架6.X--》选择相应的表--》模型命名空间;改成你需要的空间名:(Demo.EntityModel),点击完成

2.创建实现类库

引用刚刚的EF实体库

3.添加相应的NuGet包:搜索:EntityFramework

点击安装;

4.开始操作EF模型库

using EntityModel;
using System;
using System.Collections.Generic;
using System.Data.Entity;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Transactions;

namespace EntityFrameworkDB
{
    class DB
    {
        public static void Add()
        {
            using (var dbContext = new DemoEntity())
            {
                var awardPool = new GXL_AwardPool()
                {
                    ShopId = 2
                };
                dbContext.GXL_AwardPool.Add(awardPool);
                dbContext.SaveChanges();
            }
        }

        public static void Update()
        {
            using (var dbContext = new DemoEntity())
            {
                var awardPool = new GXL_AwardPool()
                {
                    ID = 1,
                    ShopId = 2
                };
                dbContext.GXL_AwardPool.Attach(awardPool);
                dbContext.Entry(awardPool).State = EntityState.Modified;
                dbContext.SaveChanges();
            }
        }

        public static void Del()
        {
            using (var dbContext = new DemoEntity())
            {
                var awardPool = new GXL_AwardPool()
                {
                    ID = 1
                };
                dbContext.GXL_AwardPool.Attach(awardPool);
                dbContext.GXL_AwardPool.Remove(awardPool);
                dbContext.SaveChanges();
            }
        }

        public static void GetModel()
        {
            using (var dbContext = new DemoEntity())
            {
                //查询单个实体
                var awardPool = dbContext.GXL_AwardPool.FirstOrDefault(x => x.ID == 1);

                //查询多个实体
                var awardPoolList = dbContext.GXL_AwardPool.Where(x => x.ShopId == 1).ToList();

                //通过sql语句查询单个实体
                //dbContext.Database.SqlQuery<ShopsMyDto>(sql).FirstOrDefault();

                //通过sql语句查谒多个实体
                //dbContext.GXL_AwardPool.Where(x => x.ShopId == 1).ToList();
            }
        }

        /// <summary>
        /// 提交事务
        /// </summary>
        public static void Tijiao()
        {
            using (var dbContext = new DemoEntity())
            {
                using (var scope = new TransactionScope())
                {
                    try
                    {
                        var awardPool = new GXL_AwardPool()
                        {
                            ShopId = 2
                        };
                        dbContext.GXL_AwardPool.Add(awardPool);

                        var awardPoolIn = new GXL_AwardPoolIn()
                        {
                            ID = 1,
                            ShopId = 2
                        };
                        dbContext.GXL_AwardPoolIn.Attach(awardPoolIn);
                        dbContext.Entry(awardPoolIn).State = EntityState.Modified;

                        //进行事务提交
                        dbContext.SaveChanges();
                        scope.Complete();
                    }
                    catch
                    {

                    }
                }
            }
        }
    }
}
时间: 2024-10-17 14:29:49

.NET之EntityFramework框架运用的相关文章

ASP.NET MVC验证框架中关于属性标记的通用扩展方法

http://www.cnblogs.com/wlb/archive/2009/12/01/1614209.html 之前写过一篇文章<ASP.NET MVC中的验证>,唯一的遗憾就是在使用Data Annotation Validators方式验证的时候,如果数据库是Entityframework等自动生成的文件,就没有办法使用扩展属性标记进行标记.现在已经开始有了一些其它的Asp.net MVC 验证框架,使用上跟Data Annotation Validators差不太多,但是普遍有这样

.NET领域驱动设计—初尝(原则、工具、过程、框架)

阅读目录: 1.原则 1.1.精简聚合 1.2.分离用例与接口功能(设计模式的用武之地) 2.工具.框架.组件 3.过程 1]原则 原则对于任何一项技术实现来说都是至关重要的,在设计某一个系统功能的时候我们讲究的是设计原则: [单一职责原则Single Responsibility Principle.里氏替换原则Liskov Substitution Principle.依赖倒置原则Dependence Inversion Principle.接口隔离原则Interface Segregati

基于EntityFramework的权限的配置和验证

1.   概要 本文主要介绍公司现有系统框架的权限体系,和一些待扩展功能的说明.目前该权限体系基于角色构建(RBAC),原则上,系统中不允许出现对用户.组织等其他对象指派权限的情况. 2.   权限分类 目前系统中的所有表现形式的权限可以归为两类: 一类是描述对象或动作是否可见,我们称之为功能权限(Authority).例如,菜单的可见性.用户添加按钮是否可见.用户添加方法是否可用等: 另一类是描述可见对象的范围或动作的影响范围,我们称之为数据权限(Permission).例如,未成年用户列表.

ORM框架的前世今生

目录 一.ORM简介二.ORM的工作原理三.ORM的优缺点四.常见的ORM框架 一.ORM简介 ORM(Object Relational Mapping)对象关系映射,一般指持久化数据和实体对象的映射 数据存储是绝大多数软件系统都要接触到的技术,具有一定规模的软件产品,为了方便存储和管理数据,便引入了数据库这一工具,但是数据如何从程序写入数据库的呢? 为方便程序员通过代码将数据写入数据库,一般的语言开发的厂商都会为各种数据库适配数据库连接的驱动程序,比如ADO.Net,JDBC等. 但是数据库

[转帖]ORM框架的前世今生

https://www.cnblogs.com/7tiny/p/9551754.html 目录 一.ORM简介二.ORM的工作原理三.ORM的优缺点四.常见的ORM框架 一.ORM简介 ORM(Object Relational Mapping)对象关系映射,一般指持久化数据和实体对象的映射 数据存储是绝大多数软件系统都要接触到的技术,具有一定规模的软件产品,为了方便存储和管理数据,便引入了数据库这一工具,但是数据如何从程序写入数据库的呢? 为方便程序员通过代码将数据写入数据库,一般的语言开发的

.NET领域驱动设计—实践(穿过迷雾走向光明)

阅读目录 开篇介绍 1.1示例介绍 (OnlineExamination在线考试系统介绍) 1.2分析.建模 (对真实业务进行分析.模型化) 1.2.1 用例分析 (提取系统的所有功能需求) 1.3系统设计.建模 (技术化业务模型) 1.3.1 枚举类型的使用 (别让枚举类型成为数值型对象) 1.3.2 基础数据.业务数据 (显示实体和隐式过程) 1.3.3 模型在数据库中的主外键关联问题 (面向对象模型与关系模型的天然抗阻) 1.3.4 角色.类型 (区分类型与面向对象概念) 1.3.5 名词

(菜鸟要飞系列)四,基于Asp.Net MVC5的后台管理系统(zTree绑定Json数据生成树)

上一次老师让我们用递归将中国城市镇县四级联动 显示在树上,那个时候就知道可以显示在zTree上,可是苦于对Json的不了解,对zTree的Api的不了解,一直没有做出来,只好将递归算法显示在了窗体上,见C# 使用winForm的TreeView显示中国城镇四级联动, 前几天老师终于将他以前做的zTree的例子给我研究,终于知道了怎么写了(哭瞎,好没有成就感),感觉网上这部分资源好少,有也是关于SqlServer用EntityFramework中数据上下文写的,由于老师不让用EntityFrame

Navi.Soft20.WinForm操作手册

1概述 1.1应用场景 尽管互联网高速发展,互联网软件也随之越来越多,但桌面应用程序在某些领域中还是不可替代,如MIS,ERP,CRM等软件产品,同时,这类软件均包括一些通用的功能,如:与数据库操作,日志管理,权限管理等 本框架指在解决这些问题,并将通用的功能抽离并实现.使在开发过程中,将更多的精力放在业务逻辑 1.2面向对象 Net程序开发员 1.3开发环境 解决方案 开发环境 描述 NaviSoft20 VS2010或以上 整个框架只有此一个解决方案.Net类库包含2种.分别是Net4.0和

Navi.Soft20.WebMVC4操作手册(含EasyUI组件源码)

阅读导航 Navi.Soft20.WebForm操作手册http://www.cnblogs.com/xiyang1011/p/4049711.html Navi.Soft20.WinForm操作手册http://www.cnblogs.com/xiyang1011/p/3972118.html Navi.Component.工作流开发手册(含示例)http://www.cnblogs.com/xiyang1011/p/3820038.html Navi.Component.DataWindow