首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

MVC3教程之实体模型和EF CodeFirst

2.添加数据库上下文   Models文件夹下新建一个名为“BookDbContext”的类,编辑这个类,将该类派生自“DbContext”类,编辑的代码如下: using System; using...3.添加数据库连接   由于我们创建的是空的Mvc项目,所以Web.config文件中,不包含任何的数据库连接字符串,我们打开Web.config文件,为它添加一个数据库连接字符串的配置: <connectionStrings...点击“添加”按钮,VS会添加一个BookController的文件,该文件处于打开状态。...EF负责根据实体模型类创建数据库、数据表;如果存在,EF会将查询条件添加到Sql查询语句,再将Sql语句发送到数据库进行数据读取。...完成数据读取,将数据转换为实体对象集合。EF对数据库的操作大致如此。

1.3K20

Entity Framework 简单查询

第二步添加一个数据操作上下文实体类。添加两个构造函数,并添加一个Person的实体类。 App.config的配置文件中添加相应的数据链接配置。 第三步调用即可生成相应的数据库。  ...一个数据库上下文的生命周期随着该对象的创建而开始,随着对象的释放(或GC回收)而结束,因此建议开发过程中使用“Using”编码方式,这样就可以免去手动释放对象的操作。...另外对于数据库连接的管理EF中是透明的,我们一般不需要手动进行处理,当查询一个对象时打开连接当处理完查询的结果集之后会自动关闭连接。...原生SQL的查询 EF还支持原生SQL查询例如: using (var db = new EFContext("EFContext")) {...不仅如此,EF还支持非实体类型的查询: using (var db = new EFContext("EFContext")) {

82120
您找到你想要的搜索结果了吗?
是的
没有找到

Entity Framework应用:使用Code First模式管理数据库创建和填充种子数据

一、管理数据库连接 1、使用配置文件管理连接之约定 在数据库上下文类中,如果我们只继承了无参数的DbContext,并且配置文件中创建了和数据库上下文类同名的连接字符串,那么EF会使用该连接字符串自动计算出数据库的位置和数据库名...name的value值和创建的数据库上下文类的类名相同,这样EF会使用该连接字符串执行数据库操作,究竟会发生什么呢?...类的有参构造函数,这样一来,我们的数据库上下文就会开始使用该连接字符串了,Program类中输出Name和Age字段的值: 1 using ExistsConnectionString.EF; 2...(即约定大于配置) 3、使用已经存在的连接 通常在一些老项目中,我们只会在项目中的某个部分使用EF Code First,同时,我们想对数据上下文类使用已经存在的数据库连接,如果要实现这个,可将连接对象传给...如果传入true的话,那么一旦上下文出了范围,数据库连接就会立即关闭

1.2K20

EF Core利用Transaction对数据进行回滚保护

新建一个webapi应用程序 选择Asp.NET Core Web应用程序 .选择WebApi 搭建EF Core 创建Model文件夹和BankContext数据库上下文,Walet钱包实体,如图:...) Controllers下新建一个BankController.cs,完整代码如下(核心部分为灰色背景): using System; using System.Collections.Generic...执行AAction,执行BAction,其中BAction在数据保存前,设置了一个异常。...执行接口(调用业务) 首先,其启动方式从IIS切换到WebAPi程序本身,为的是控制台中看到输出的SQL语句。...程序成功启动,我们调用数据初始化接口,效果如图: 有了数据,我们调用转账接口进行转账操作,如图: 进行转账操作,A的账户成功减掉10元B的账户加上10元保存时,由于我们设置了异常,程序跳出了

1.5K50

你不知道的数据库连接

实际上,大多数应用程序仅使用一个或几个不同的连接配置。 这意味着执行应用程序期间,许多相同的连接将反复地打开关闭。...池连接可以显著提高应用程序的性能和可缩放性。 默认情况下, ADO.NET 中启用连接池。 除非显式禁用,否则,应用程序中打开关闭连接时,池进程会对连接进行优化。...} 如果 MinPoolSize 连接字符串中未指定或指定为零,池中的连接将在一段时间不活动关闭。..." 强烈建议您总是使用完连接关闭连接,以便将连接返回到池中。您可以使用Connection对象的Close或Dispose方法,或者通过打开c#中的using语句来实现这一点。...当连接关闭时,它将被释放回池中,并根据其事务上下文放入相应的子部分。 因此,即使分布式事务仍然挂起,仍可以关闭连接而不会生成错误。 这样,你就可以之后提交或中止分布式事务。

99310

【ASP.NET Core 基础知识】--数据库连接--使用Entity Framework Core进行数据库访问

EF Core 与传统的 Entity Framework (EF) 相比,具有以下特点: 更轻量级: EF Core 比 EF 更为轻量,只包含了最核心的 ORM 功能,减少了不必要的依赖。...打开数据库连接。 以下是一个简单的示例,演示了如何使用EF Core连接到数据库: 首先,确保已经安装了适当的数据库提供程序包。...DbContext:DbContext 是 EF Core 中表示数据库连接和模型的类。每个 DbContext 实例都与一个数据库上下文关联,并且可以用于执行查询和修改数据库中的数据。...EF Core 通过提供事务上下文支持数据库事务。 事务 EF Core 中的使用涉及以下步骤: 开始事务: DbContext 实例中开启一个事务。...Tip: 每个 DbContext 实例都有自己的事务上下文。 事务仅适用于同一 DbContext 实例中执行的操作。 事务嵌套在 EF Core 中不受支持。

18700

EF 5 中跟踪SQL和缓存数据

EF4和EF5中需要跟踪执行SQL和缓存数据,微软官方有一个名为EFProviderWrappers的扩展示例非常值得学习,EFProviderWrappers包含EFTracingProvider和...EFCachingProvider,前者用于跟踪EF中增删改查的SQL语句,后者用于将EF查询的结果自动进行缓存,缓存策略过期时间可由开发者自己指定,目前这两个扩展只支持EF4和EF5,因为EF6中微软已提供拦截器...4、将ExtendedNorthwindEntities所继承的基类NorthwindEntities修改为自己的EF上下文类。...1、可通过Log属性指定SQL语句输出位置: public TextWriter Log { get; set; } 2、通过Cache属性指定EF上下文的缓存位置,这里配置的是全局设置: public...上下文的局部配置,也可进行全局配置,全局配置将影响所有的EF上下文,局部配置优先级高于全局配置,全局配置通过EFTracingProviderConfiguration的属性进行设置,这些属性主要有:

1.1K80

ASP.NET MVC学习笔记05模型与访问数据模型

否者DbContext类会报错,而且也无法Using Entity。 ?...默认的,Entity Framework的看起来命名为为对象上下文类(如本项目MovieDBContext)的相同的一个连接字符串。...打开应用程序根目录的Web.config文件,注意是根目录。 ? 如上图,Web.config 文件中的内添加下面的连接字符串。...依次解决方案管理器中选中App_Data中的Movies.mdf,然后右键打开左侧弹出的服务器资源管理器中选择指定的表展开就可以显示数据表等一些列操作了。 注意:ID旁边的钥匙图标。...当完成,通过右击MovieDBContext,并选择关闭连接。 (如果你不关闭连接,下一次运行项目, 你可能会得到一个错误)。

2.4K40

ADO.NET入门教程(四) 品味Connection对象

摘要 前几篇文章,我都没有详细讲解Data Provider核心对象,因为我希望讲解这些对象之前,让大家对一些基础的概念有很好的认识。...如果说连接字符串是打开数据源大门的钥匙,那么我今天要讲解的则是如何用这把钥匙打开数据源的大门。作为Data Provider的第一核心对象,Connection对象肩负起连接数据源的重任。...Close: 关闭与数据库的连接。 此方法是关闭任何已打开连接的首选方法。Close 方法回滚任何挂起的事务。 然后,它将连接释放到连接池,或者连接池被禁用的情况下关闭连接。 3....必须掌握的几个属性 Database: 连接打开之后获取当前数据库的名称,或者连接打开之前获取连接字符串中指定的数据库名。 DataSource: 获取要连接的数据库服务器的名称。...而对数据库连接资源来说,是非常宝贵的。因此,我们应当确保打开连接,无论是否出现异常,都应该关闭连接和释放资源。所以,我们必须在finially语句块中调用Close方法关闭数据库连接

95660

.NET Dapper的正确使用姿势

习惯了EF再来使用Dapper,会很难适应那种没有了强类型的安全感。不过可以用单元测和心细来避免。...数据库连接 问题:IDbConnection需不需要手动Open打开连接 答案:有时候需要有时候不需要 Dapper连接可分两种:主动管理(自己管理连接打开关闭)和自动管理(自动管理连接打开关闭...就怕你管理一半,打开关闭: //循环执行两百次左右就可以重现连接池超过最大限制 DBContext dBContext2 = new DBContext(); dBContext2.DbConnection.Open...Note:使用事务的时候需要手动打开连接,请不要忘记在finally里面Close。 增删改查的优化 批量新增 //1、可通过匿名对象集合进行参数化数据新增。...通过AOP拦截,方法执行前开启事务,方法执行提交事务就可以了。

25110

EF 相见恨晚的Attach方法

一个偶然的机会,让我注意了EF 的Attach方法,于是深入了解让我大吃一惊 我所参与的项目中所有的更新操作与删除操作都是把原对象加载出来,再做处理,然后再保存到数据库,这样的操作不缺点在于每一次的操作都要对数据库进行两次操作...状态附加到上下文中 从解释可以看出Attach方法主要目的就是把一个没有被dbContext跟踪的对象附加到dbCotext中使其被dbContext跟踪  1   对象上下文:DBContext 建一个新的上下文实例以创建将连接到的数据库的名称...,默认状态是没有对任何对象跟踪的  2   实体状态:  EF中对实体状会有4种状态:       2.1  Added:对象为新对象,并且已添加到对象上下文,但尚未调用    2.2  Deleted...创建实体之后、但将其添加到对象上下文之前,该实体处于此状态   2.4 Modified:对象上的一个标量属性已更改,但尚未调用    2.5 Unchanged: 此对象尚未经过修改自对象附加到上下文...的处理方式如下 // 1 把对象附加到上下文中,并把状态改为Modified状态 // 2 调用Savechange方法时生成一段Update的SQL语句且Where 条件 // 为对象的主键Id

1.4K40

CSharpEntityFramework与CodeFirst实践

这种开发模式适合于全新的项目,它使得我们可以以代码为核心进行设计而不是先构造数据库。这样一来,使得我们更加关注代码的开发。...接下来,我们需要使用继承EF的DbContext来构建数据库上下文类,我们直接使用VS自带生成工具即可生成对应的数据库上下文模型: 点击完成我们就得到了如下的一个配置类 public class...实际数据库配置 完成EF的Mysql连接环境配置,最基础的数据库还是需要建立的,所以去数据库创建一个名为bookdbdemo的数据库,按道理来说,我们只需要在这个地方触碰到数据库,况且这还是DBA的事情...Using NuGet project 'CodeFirstDemo'. 指定“-Verbose”标志以查看应用于目标数据库的 SQL 语句。...Using NuGet project 'CodeFirstDemo'. 指定“-Verbose”标志以查看应用于目标数据库的 SQL 语句

24210

【原】尝试 Entity Framework POCO功能+Code First

实体设计窗口中,右击→属性→代码生成策略=>无  ,这一步就是去掉EF自动代码生成实体类以及EF数据访问上下文网关ObjectContext等。...最终如下图所示: 第三步:根据模型生成数据库(codefirst) 模型设计器里面 右击→根据模型生成数据库 →选择数据库连接→在生成的SQL代码文件并默认vs2010上打开,右击执行SQL 第四步...代码如下所示: using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Data.Objects...; namespace EFPoco { publicclass CompanyContext : ObjectContext { //EF生成的连接字符串 privatestaticstring...的链接字符串的Value,第二个是实体容器的名称,可以实体设计器模型上右击属性里面找到,默认连接字符串的KEY也是容器的名字 { departmentSet =

53210

使用Entity Framework Core访问数据库(DB2篇)

前言 上一篇讲了一些EF Core访问Oracle的坑。...关于EF Core DB2 的官方文档:点这里(E文好的可以参考) 正文 1.生成上下文实体,并访问数据库 首先我们当然是生成上下文实体啦~ 我们创建一个空的控制台程序如下: ?...Nuget控制台 输入DBFirst的生成语句 生成上下文语句如下: Scaffold-DbContext "这里是你的连接字符串;" IBM.EntityFrameworkCore 生成效果如下...using (MYTESTDBContext db = new MYTESTDBContext()) { var date...最后生成的语句改成你对应的dll即可。 所以 有些MacOS本上使用VS code的兄弟。。请引用osx的包哦。 3.关于Docker中部署的问题。 我这个项目也是一个移植类的项目。

1.1K30

.NET Core1.1+VS2017RC+MySQL+EF搭建多层Web应用程序

.NET Core1.1+VS2017RC+MySQL+EF搭建多层Web应用程序,先贴上解决方案截图 一、新建4个解决方案文件夹 1-Presentation 2-Application 3-Domain...4-Infrastructure 二、解决方案文件夹中分别创建项目 新建.NET Core Web应用程序,【身份验证】需要选择【个人用户账户】否则无法执行migrations操作,猜想原因可能少了某个...ContosoUniversity.Domain项目添加Student、SchoolContext、DbInitializer类 Student:POCO对象,对应数据库中的Student表 SchoolContext:数据库上下文...context.SaveChanges(); } } } 五、ContosoUniversity.WebAdmin项目修改 1.appsetting.json文件添加MySQL连接字符串...注意 NuGet包Install或Uninstall命名执行,查看VS2017RC中依赖的NuGet包发现没有变化(实际上已Install或Uninstall,VS2017RC没有刷新),此时需要关闭解决方案重新打开

32740

linux系统运维企业常见面试题集合(二)

第一种方案:变长子网掩码的方法,加大IP地址的可使用范围,全网分发/etc/hosts文件 第二种方案:增加核心交换机,核心交换机划分VLAN,将新增的服务器加入新的VLAN中,全网分发/etc/hosts...,表示建立连接的两端可以正常通信了 close_wait 对方主动关闭连接或网络异常而中断,因此状态会变成 time_wait 主动断开连接,收到对方确认的状态,相当于释放资源,可以设置些种状态的参数...bInlog:是用于记录所有更新了数据的操作语句语句以事件的形式保存,它描述数据的更改过程 作用:用于实时备份数据,数据库的主从复制 log_bin 打开记录binlog功能 binlog的查看 mysqlbinlog...:浏览器与服务器建立连接打开一个socket的虚拟文件,表明连接建立成功 请求:浏览器通过socket向服务器提交请求(一般是GET或POST请示命令) 应答:浏览器请求提交,通过HTTP协议传送给服务器...,服务器收到后进行处理将结果又通过HTTP回传给客户端,从而在客户端显示出所请求的页面 关闭连接:当应答结束,浏览器与服务器之间就断开连接 12 请详细描述MySQL主从复制原理。

56921

.net EF 新手教程

下来我们项目中添加ADO.NET实体数据模型 模型的内容根据大家的需要进行选择,我在这里选择来自数据库的EF设计器,这样他会帮我自动生成数据库中的EF设计器。...因为我之前创建过这里会显示我之前的连接, 大家可以在这里选择新建连接 因为我使用的 SQL Server,所以这里我选择Microsoft SQL Server,继续 这里根据大家的数据库情况进行选择和配置...配置成功选择数据库的位置可以看到我们的数据库,选择需要的数据库后进行确定,我们的准备工作就完成了。...No.3 实体框架的状态 状态EF框架中比较重要,如果不了解状态也就无法进行后面的操作,下面我来简单说一下几种状态,框架中使用EntityState这个枚举 状态 说明 具备该状态的对象 Detached...对象为新对象,并且已添加到对象上下文 使用Add()方法添加的对象 Deleted 对象已从上下文中删除 使用Remove方法溢出的对象 Modified 对象上的一个属性已更改 受DbContext管理

7200
领券