Entity Framework 6 学习笔记】的更多相关文章

前言 通过 “Entity Framework 6 学习笔记1 — 介绍和安装方法”文章我相信大家对EF的安装应该没什么问题了,整体安装还是比较简单的,只需要通过Nuge搜索EF然后安装就可以了,这也体现了微软一贯原则–“简单”. 安装完了我想很多朋友也着急想体验下EF的好处了吧,今天我就通过EF框架对增.删.改操作做一个简单示例. 创建表 这里我只是做示例所以就创建了一个表并且字段也很少.下面是sql语句,大家可以直接复制生成表结构.   CREATE TABLE Book   (   Id…
自引用 public class PictureCategory { [Key] [DatabaseGenerated(DatabaseGeneratedOption.Identity)] public virtual int CategoryId { get; set; } public virtual string Name { get; set; } public virtual int? ParentCategoryId { get; set; } [ForeignKey("Parent…
3 创建购物车 每个商品旁边都要显示Add to cart按钮.点击按钮后,会显示客户已经选中的商品的摘要,包括总金额.在购物车里,用户可以点击继续购物按钮返回product目录.也可以点击Checkout now按钮,完成订单和购物会话. 3.1 定义Cart Entity 购物车是程序业务域的一部分,在我们的领域模型中创建实体.添加一个Cart类到Entities文件夹. 购物车类使用CartLine,代表用户选中的一个商品.定义了添加.移除.计算合计.清空的方法.我们也提供了一个属性,返回…
我们要建造的程序不是一个浅显的例子.我们要创建一个坚固的,现实的程序,坚持使它成为最佳实践.与Web Form中拖控件不同.一开始投入MVC程序付出利息,它给我们可维护的,可扩展的,有单元测试卓越支持的构造精良的代码.一旦我们有了基本的基础设施,我们就能加快. 1 创建解决方案和项目 1.1 创建一个空白解决方案,命名为SportsStore,添加三个项目 Project Name VS Project Template Purpose SportsStore.Domain 类库 提供域实体和逻…
Adam Applied ASP.NET 4 in Context 1 介绍Routing系统 在引入MVC之前,ASP.NET假定被请求的URLs和服务器硬盘上的文件之间有着直接关系.服务器的任务是从浏览器接受请求,从相应文件分发请求. 这种工作方式只是用与Web Forms,每个ASPX页面都是一个文件,它有独立的回应请求的相应. 要处理MVC URLs,ASP.NET平台是用routing系统.在这章,我们展示如何设置和使用routing系统,来创造强大且灵巧的URL处理.routing系…
书Adam The Definitive Guide to HTML5 Adam Applied ASP.NET 4 in Context and Pro ASP.NET 4 到此为止,我们已经学了为什么ASP.NET MVC框架会出现,认识了建筑和潜在的设计目标.我们已经做了一个很好的测试驱动的实际的电子商务应哟那个.现在是时候打开钩子,揭示框架机制的所有细节. 在本书的第二部分,我们关注细节.从揭示一个ASP.NET MVC程序的结构,和应用请求处理管道开始.接着关注每个特性个体,如rout…
1 扩展数据库 打开表定义,新增两列可空 ) 2 增强领域模型 为Products类添加如下属性 publicstring ImageMimeType { get; set; } 第一个属性不会在界面上显示,因为框架不会为byte数组渲染编辑框,只有int ,string,DateTime等有.第二个属性隐藏. 需要确保属性名和数据库中的列名相同. 3 更新EF概念模型 偶们在数据库中建了新列,在Product类中建了相应的属性.现在我们要更新EF概念模型,相互映射.…
1 设置表单身份认证 因为ASP.NET MVC基于ASP.NET平台的核心,所以我们可以使用ASP.NET Form的身份认证,这是保持用户登录轨迹通用的方法.现在介绍最基本的配置. 在Web.config文件中,有这么一段 </authentication> 表单身份认证自动地被空的模板或Internet程序模板MVC程序启用.当需要要认证时,loginUrl属性告诉ASP.NET,定向到哪个URL.在这里,会定向到/Account/Logon页面.timeout属性指定用户登陆后,过期时…
管理功能,如何身份认证,对controller和action方法过滤安全的访问,并在用户需要时提供证书. 1 添加分类管理 方便管理的controller,有两类页面,List页面和edit页面. 1.1 创建CRUD Controller 在Controller文件夹上点右键,创建带CRUD的controller.我们要展示如何构建controller,并解释每个步骤,删除所有的方法,只留构造函数. } 1.2 用Repository中的产品渲染一个Grid 添加Index方法,显示repos…
在之前的章节,偶们设置了核心的基础设施,现在我们将使用基础设计添加关键特性,你将会看到投资是如何回报的.我们能够很简单很容易地添加重要的面向客户的特性.沿途,你也会看到一些MVC框架提供的附加的特性. 1 添加导航控件 如果使用分类导航,需要做以下三个方面: 增强List action模型,让它能过滤repository中的Product对象 重访并增强URL方案,修改我们的重路由策略 创建sidebar风格的分类列表,高亮当前分类,并链接其它分类 1.1 过滤Product列表 偶们要增强视图…
在之前的例子中,我们创建了FakeRepository类来支持我们的测试.但是我们还没有解释如何穿件一个真实的repository实现,我们需要一个替代品.一旦我们有一个真的实现,我们可能不会再用它,因为它把我们的测试环境变得复杂. FakeRepository类,是IProductRepository接口的伪实现.我们创建伪实现,并手动添加特别的参数,使得FakeRepository类手动的仿制品.Moq是一个框架,让我们仿制变得快速,简单,容易. 1 将Moq添加到测试项目,而不是应用程序项…
IProductRepository接口定义了一个仓库,我们通过它获得.更新Product对象.IPriceReducer接口指定了一个功能,它将要对所有的Products实施,通过一个参数,降低他们的价格. 在这个例子中,我们的目的是创建一个IProductReducer的实现,它有以下功能: 仓库中所有Product的价格都要减 仓库的UpdateProduct方法可以被每个Product对象调用 价格不能低于1 为了帮助我们建立实现,我们创建一个FakeRepository类,它实现了IP…
这三个工具,应该是每个MVC程序员的兵工厂中的一部分.DI容器,单元测试框架,mocking 工具.Ninject是我们偏爱的DI容器,它简单,高雅,并且容易使用.这里有很多复杂的替代品,但是我们喜欢Ninject最小配置的工作方式.如果你不喜欢Ninject,可以使用Unity,它是微软提供的替代品. 单元测试方面,我们使用VS2010内置的 NUnit,它是.Net 单元测试框架中最受欢迎的一个. Mocking 工具套装,我们选择 Moq.如果你不喜欢它,可以使用Rhino Mocks这个…
C# 是一个富有特性的语言,并不是所有的程序员都熟悉本书依赖的所有特性.在本章,我们看看作为一个好的MVC程序员需要知道的C#特性. 1 C#主要特性 } 1.1 使用扩展方法 扩展方法 在你不能拥有,和不能直接修改类时,给类添加方法一个方便的方式. } 假设我们需要决定ShoppingCart类中Product对象的所有值,但是我们不能修改类本身,也许是因为它来自于第三方,我们没有源代码.幸运地,我们可以使用扩展方法,来得到我们想要的功能. } 第一个参数前的 this 关键字,使得 Tota…
类型查询 public class bbb:xxx {} var items = from c in context.Dbset<xxx>    where c is bbb   select c;var items = from c in context.Dbset<xxx> .OfType<bbb>()  select c;…
第一步:创建一个控制台应用程序,起名为EFDemo 2. 第二步:创建一个实体模型 (1)在EFDemo项目上面右击选择添加—新建项—在已安装的选项中选择数据—ADO.NET实体对象模型,如图所示: 3. 与数据库进行连接 (1)    单击第二步建立的实体数据模型的添加按钮,然后我们选择从数据库生成,如图所示: (2)    单击下一步,然后如果我们以前没有操作的话在这里将是为空的,然后我们单击新建连接,建立一个数据库的链接,然后选择“是,在连接字符串中包含敏感数据”,如图所示: (3)   …
关于 cookie expiry & securityStamp http://www.jamessturtevant.com/posts/ASPNET-Identity-Cookie-Authentication-Timeouts/ (blog 说的很不错) http://stackoverflow.com/questions/19487322/what-is-asp-net-identitys-iusersecuritystampstoretuser-interface http://sta…
添加: using (var edm = new NorthwindEntities()) { Customers c = ", Region = "天府广场", ContactName = "风车车.Net" }; edm.AddToCustomers(c); int result = edm.SaveChanges();} 删除: using (var edm = new NorthwindEntities()) { Customers deletec…
最近在看MVC方面的资料,看了几个教程都在使用Entity Framework做数据持久化.之前也听说过这个东西,在微软的网站上看过一个演示视频,但都没怎么去仔细研究.MVC的东西太庞大了,先慢慢熟悉着.但可以从其中的一个部分入手,先学习Entity FrameWork.当作笔记,哪天翻出来温故. 简单说,EF是一个ORM解决方案,是微软出的东西.这里,主要记录如何使用,至于它的来龙去脉,可以网上搜搜.现在就开始用VS2010创建Console项目,并且使用EF作为和数据库打交道的工具.VS20…
个人从传统的CS应用开发(WPF)开始转向BS架构应用开发: 先是采用了最容易上手也是最容易搞不清楚状况的WebForm方式入手:到后面就直接抛弃了服务器控件的开发方式,转而采用 普通页面+Ajax+一般处理程序的方式: 虽然能快速开发一些小项目应用,但整体架构不可靠.代码冗余.操作界面不友好等等问题还是让我重新考虑应该认真系统的学习一个开发架构框架: 由于个人一直从C语言学习上来的,也没有碰过Java,所以自然而然的就只有选择 ASP.NET MVC这个开发框架:(也许在完成MVC的学习后,也…
上期回顾:Entity Framework 学习笔记(1) Entity Framework最主要的东西,就是自己创建的.继承于DbContext的类: /// <summary> /// Context相当于一个数据库 /// </summary> public class MusicContext : DbContext { //base("LocalDB")表示要用到config文件中的名为"LcoalDB"的连接字符串 public…
原文地址:http://www.cnblogs.com/frankofgdc/p/3600090.html Entity Framework学习笔记——错误汇总   之前的小项目做完了,到了总结经验和更新学习笔记的时间了.开始正题之前先啰嗦一下,对之前的学习目标进行一个调整:“根据代码生成表”与“生成数据库脚本和变更脚本”合并为“Code First模式日常使用篇”,增加现在这篇“错误汇总”,增加“Code First模式与其他模式混合使用与Fluent API篇”,“生成视图”因为这次在项目中…
ADO.NET Entity Framework学习笔记(3)ObjectContext对象[转]   说明 ObjectContext提供了管理数据的功能 Context操作数据 AddObject 添加实体 将实体添加到集合中, 创建实体时,状态为EntityState.Detached 当调用AddObject将实体添加到Context时,状态为EntityState.Added myContext context = new myContext(); myTab r = new myTa…
上一篇我们梳理了CodeFist的一般流程,本篇我们讨论如何在一套代码中,支持SQL Server和SQLite的切换.同时从本篇开始,我们从.NET Core 3.1 迁移到.NET 5.相信.NET 到了5这个版本,所有人都不会再怀疑某软跨平台的决心.而且SQL Server也从2017版本开始支持Linux.但是我相信在Linux上使用Visual Stuido Code时,搭配SQLite更能体现某软现任CEO崽卖爷田不心疼的精神.SQLite是非常常见的数据库,最大的特点就是零部署,以…
EF中基于方法的查询方式不同于LINQ和以往的ADO.NET,正因为如此,有必要深入学习一下啦.闲话不多说,现在开始一个MVC项目,在项目中临床学习. 创建MVC项目 1.“文件”--“新建项目”--“模板”--“Web”--“ASP.NET MVC4应用程序”,创建一个项目名称为 GuestBook 的MVC4项目 2.在文件目录的中Models目录中新建两个Model类 Book.cs: using System; using System.Collections.Generic; usin…
之前的小项目做完了,到了总结经验和更新学习笔记的时间了.开始正题之前先啰嗦一下,对之前的学习目标进行一个调整:“根据代码生成表”与“生成数据库脚本和变更脚本”合并为“Code First模式日常使用篇”,增加现在这篇“错误汇总”,增加“Code First模式与其他模式混合使用与Fluent API篇”,“生成视图”因为这次在项目中没有使用,最后研究后再写出来.通过项目实战,觉得EF并不像之前想象中的这么容易上手.问题不是EF设计的不好,EF使用起来其实相当便捷,多数数据库操作一两行代码就能搞定…
继续之前设定的学习目标前,先来一篇小小的外篇.按照第一篇里的配置方式配置好的工程前两天还能正常工作,昨天却突然无法通过Add-Migration命令进行数据库的升级.错误信息如下: System.Data.Entity.Core.ProviderIncompatibleException: 从数据库中获取提供程序信息时出错.这可能是 Entity Framework 使用的连接字符串不正确导致的.有关详细信息,请查看内部异常并确保连接字符串正确. ---> System.Data.Entity.…
初次使用Entity Framework(以下简称EF),为了避免很快忘记,决定开日志记录学习过程和遇到的问题.因为项目比较小,只会用到EF的一些基本功能,因此先在此处制定一个学习目标:1. 配置EF(指定EF用哪个数据库,相信在大部分开发过程中都不会使用官方Demo中的LocalDb)2. 根据代码生成表(主要是一些特殊情况,比如希望自己设置string类型属性的长度,不想统一都是nvarchar(max))3. 生成视图(部分类其实希望生成成为视图,这样可以让数据库表设计更加符合范式,同时简…
作者:张博出处:http://yilin.cnblogs.com Entity Framework支持Database First.Model First和Code Only三种开发模式,各模式的开发流程大相径庭,开发体验完全不一样.三种开发模式各有优缺点,对于程序员没有哪种模式最好,只有哪种模式更适合.接下来我将分别使用这三种开发模式实现同一数据库模型的数据持久化功能.希望通过实践能帮助你找到更适合你的开发模式. Database First Database First开发模式指以数据库设计…
请注明转载地址:http://www.cnblogs.com/arhat 从本章开始,老魏就介绍一下Entity Framework使用Linq来查询数据,也就是Linq To Entity.其实在Entity Framework中提供了3中查询方式,除了使用Linq还有Lambda表达式,EQL语句,其中EQL是用于复杂的查询,当Linq无法胜任的时候就要使用了EQL了,当然也可以使用存储过程.废话不多说,开始本章的内容. 在本章中查询的依然是Student和Clazz两张表,主要涉及到是单表…