EF实体框架之CodeFirst六】的更多相关文章

上午的时候把复杂类型学习了一下,想着趁着周六日把Code First学习完,所以下午还是把Code First中的关系学习下.在数据库中最重要的恐怕就是E-R图了,E-R体现了表与表直接的关系.使用Code First也需要把这种表与表直接的关系映射到数据库中,所以关系映射在Code First中也是很重要的一节.Code First中主要包括一对一.一对多.多对多. 一.外键列名默认约定 Entity Framework Code First在根据默认约定创建外键时,外键列的名称存在3种方式:…
在EF实体框架之CodeFirst二中也提到数据库里面一般包括表.列.约束.主外键.级联操作.实体关系(E-R图).存储过程.视图.锁.事务.数据库结构更新等.前面几篇博客把表.存储过程.视图这些算是总结了一下,这篇的话主要总结下基本的约定类型. 1.主键 在数据库中主键是必不可少的,一般主键有业务主键和逻辑主键,而且主键有的还是联合主键在code first中也可以通过约定的形式映射到数据库——[Key]. [Key] public int ProductID { get; set; } 默认…
对于SQL Server.MySql.Oracle等这些传统的数据库,基本都是关系型数据库,都是体现实体与实体之间的联系,在以前开发时,可能先根据需求设计数据库,然后在写Model和业务逻辑,对于Model类基本都是和表的字段对应着,而表中存的每条记录又和类的实例对象对应着,有了这个对照关系,就是能不能只在一边设计,在数据库设计表或在VS中设计Model,然后直接生成另一边,这样就省了好多时间成本.于是有了ORM,Object Relation Mapping,对象关系映射.既然可以根据Mode…
上一博客学习了下基本的约定配置,留下几个遗漏的,这篇就是学习下遗漏一复杂类型. 一.什么是复杂类型? 书中说道:“复杂类型也可视作值类型(?)可以作为附加属性添加到其他类.复杂类型与实体类型的区别在于复杂类型没有其自己的键.它是依赖于其"宿主"类型跟踪变化 和持久化.一个没有Key属性的类型,并且作为属性映射到一个或多个类型中,Code First就会将其视作为复杂类型.Code First将预设复杂类型的属性出现在宿主类型映射到数据库的表中.” 说简单一点就是,项目中有个类A,这个A…
在codefirst一中也说了Mapping是实体与数据库的纽带,model通过Mapping映射到数据库,我们可以从数据库的角度来分析?首先是映射到数据库,这个是必须的.数据库里面一般包括表.列.约束.主外键.级联操作.实体关系(E-R图).存储过程.视图.锁.事务.数据库结构更新等.在接下来的日子里,通过数据库的这些名词,来学习C#是如何实现或者调用它们来通过代码操作数据库. 在code first一中主要是学习了对数据库的映射,今天主要是学习表的映射.一个model映射一个表,多个modl…
前面的6篇博客基本把Code First学习的差不多了,今天这篇学习下code first中的并发控制和事务,基本也快学完了,顶多就差数据迁移. 在数据库中也是有锁和事务的概念,在C#中也是存在,当然code first也是必要要有的.对于什么是并发.什么是锁和事务,它们的特性是什么这些概念性的就不一一列举.因为这些要是发散的学习就涉及到好多的知识点.并发能联想到多线程,多线程能联想到同步异步,同步异步操作系统,等等.知识都是连贯着的.有了并发那就有不并发的情况,想让不并发,那用什么呢?那就要用…
前两篇博客学习了数据库映射和表映射,今天学习下数据库初始化.种子数据.EF执行sql以及执行存储过程这几个知识. 一.数据库初始化策略 数据库初始化有4种策略 策略一:数据库不存在时重新创建数据库 Database.SetInitializer<EFCodeFirstDbContext>(new CreateDatabaseIfNotExists<EFCodeFirstDbContext>()); 策略二:每次启动应用程序时创建数据库 Database.SetInitializer…
前面七篇基本把Code First学习了一下,不过code first中会出现一个问题,就是数据迁移的问题. 一.数据准备 还是在前面的demo上修改,这次使用Province和City类. public class Province { [Key] public string ProvinceId { get; set; } public string ProvinceName { get; set; } public virtual ICollection<City> Citys { ge…
当前位置: 主页 > 编程开发 > C_VC视频教程 > C#.Net EF实体框架入门视频教程 > kingstone金士顿手机内存卡16G仅65元 1.EF实体框架之增加查询 上传日期:2014-09-14 18:48:21  相关摘要:  - 破解无线路由器密码需要增加那些设备? - 桌面上的东西删除的话就会出现文件正在删除的图标,但是这个图标永远不消失 - sql语句查询一张表的3-6条数据,6-9条数据,这样的sql这么写呢 2.EF修改删除和延时加载 上传日期:2014…
在数据库中,表与表之间可能存在多种联系,比如,一对多,多对多的关系.当我们使用逻辑外键在数据库建立两张表之间的关系的时候,我们使用EF实体框架 必然也会将这种关系映射到我们的实体关系中来.所以,在我们做项目的时候,很多情况下我们都使用逻辑外键建立两张表之间的关系,从而避免删除等操作带来的种 种问题. 那么,我们的EF实体框架是怎么解决这种关联关系呢?假如给我们两张表,一张是用户表,另外一张是订单表.用户表与订单表是一对多的关系,我们来仿照EF 代码简单的写一个自己的框架(CodeOnly) 第一…
导读:在之前,我们学过了三层框架,即:UI.BLL.DAL.我们将页面显示.逻辑处理和数据访问进行分层,避免了一层.两层的混乱.而后,我们又在经典三层的基础上,应用设计模式:外观.抽象工厂+反射,使得经典三层演变为了七层,在一定程度上降低了U层和B层,B层和D层的耦合. 可是,怎样解决D层和数据库之间的耦合?在三层操作中,D层都是直接访问数据库而对数据进行操作,在面向对象的应用中,这似乎显得不太合理,所以,我们应用了EF框架,解决了D层和数据库之间的耦合(这在之前已经说明过了).在三层中,我们应…
一.知识回顾 到目前为止,自己学到的链接数据库操作已经经历了几个阶段,分别是:学生信息管理和(第一次)机房收费时的直接连接数据库操作表格,然后是机房个人重构中应用的操作实体,在其中还利用了一个很重要的帮助类:SQLHelper. 在这个转变中,已经逐步由面向过程转向面向对象,但在分层操作实体的过程中,由于数据库的设计不很完美,有时候需要修改数据库设计,或者需要更改实体.每次遇到这样的事儿,就脑袋疼,因为数据库和实体必须要对应起来,不然问题就越改越大了. 那么怎样解决这一问题呢?最近学习了一个EF…
EF实体框架数据操作基类主要是规范增.改.查.分页.Lambda表达式条件处理,以及异步操作等特性,这样能够尽可能的符合基类这个特殊类的定义,实现功能接口的最大化重用和统一. 1.程序代码 /// <summary> /// MSSQL数据库 数据层的父类 /// </summary> /// <typeparam name="T"></typeparam> public class BaseDAL<T> where T :…
我亦MSDN 原文地址 http://msdn.microsoft.com/en-us/data/jj556606 Entity Framework allows a number of settings to be specified from the configuration file. In general EF follows a ‘convention over configuration’ principle. All the settings discussed in this…
//----------------------------------------------------------------// Copyright (C) 2013 河南禄恒软件科技有限公司// // 功能描述:实体框架数据仓储的操作接口,包含增删改查接口////----------------------------------------------------------------using System;using System.Data.Entity.Infrastruct…
//----------------------------------------------------------------// Copyright (C) 2013 河南禄恒软件科技有限公司// // 功能描述:实体框架数据仓储的操作接口,包含增删改查接口////----------------------------------------------------------------using System;using System.Linq;using System.Linq.…
1,无法为具有固定名称“System.Data.SqlClient”的 ADO.NET 提供程序加载在应用程序配置文件中注册的实体框架提供程序类型“System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer”.请确保使用限定程序集的名称且该程序集对运行的应用程序可用.有关详细信息,请参阅 http://go.microsoft.com/fwlink/?LinkId=260882. 原因是尽管在引用中添加了…
ADO.NET 实体框架概述 随着.NET Framework 3.5 SP1和Visual Studio 2008 SP1的正式发布.ADO.NET 实体框架正式来到开发人员的面前,它使开发人员可以通过对象模型(而不是逻辑/关系数据模型)专注于数据.实体框架有助于将逻辑数据架构抽象为概念模型, 并且允许以多种方式通过对象服务和名为“EntityClient”的新数据提供程序与概念模型交互. 实体框架组件 实体框架使开发人员可以编写更少的数据访问代码,减少维护,将数据结构抽象化为更易于开展业务(…
原文地址:http://wenku.baidu.com/link?url=eutYH1QWA9y7fnxsxT9pZfJTPfa36nCI4R3Ub8Y4ybAVSgmXzEnXHwUj-GPFinnE8Jz1CM8JSILjFWy3Rp-WSI3PCxkMRg6YpxcMefEC9NW…
从数据库更新模型 要想让数据库表之间的外键关系 显示到实体模型的导航属性中去. 表的外键 对应另一张表的字段要是主键,唯一键显示不出来…
在使用Entity Framework 实体框架的时候,我们大多数时候操作的都是实体模型Entity,这个和数据库操作上下文结合,可以利用LINQ等各种方便手段,实现起来非常方便,一切看起来很美好.但是如果考虑使用WCF的时候,可能就会碰到很多相关的陷阱或者错误了.因为实体模型Entity的对象可能包括了其他实体的引用,在WCF里面就无法进行序列化,出现错误:而且基于WCF的时候,可能无法有效利用Express表达式,无法直接使用LINQ等问题都一股脑出现了.本文基于上面的种种问题,阐述了我的整…
在EF实体框架中进行日志跟踪,一般都是自己写个Log实体类,在数据保存时进行属性原始值验证来进行日志跟踪.当然还可以使用一些第三扩展库例如:entity framework extended进行日志记录,本文介绍如何使用TrackerEnabledDbContext进行操作日志跟踪. 1,首先创建项目工程,TrackerEnabledDbContext只支持4.5及以上框架,详情见:https://www.nuget.org/packages/TrackerEnabledDbContext 2,…
在一些比较重要的业务系统中,通常会要求系统跟踪数据记录的变动情况.系统要记录什么时间,什么人,对那些信息进行了变动. 比较简单的实现方式是在每个表中加入两个字段CreatedBy和CreatedAt,见图1.CreatedBy用来存是谁进行了这次更改.CreatedAt用来存什么时间进行了这次更改.但是这种方式只能保存最后一次进行改动的人和时间.中间的改动历史都不能保留.改动前的值也不能保留. 图 1 对于关键的信息系统,例如银行系统,电商系统,公安系统,我们需要保存数据完整的变动信息和历史.这…
在一些比较重要的业务系统中,通常会要求系统跟踪数据记录的变动情况.系统要记录什么时间,什么人,对那些信息进行了变动. 比较简单的实现方式是在每个表中加入两个字段CreatedBy和CreatedAt,见图1.CreatedBy用来存是谁进行了这次更改.CreatedAt用来存什么时间进行了这次更改.但是这种方式只能保存最后一次进行改动的人和时间.中间的改动历史都不能保留.改动前的值也不能保留. 图 1 对于关键的信息系统,例如银行系统,电商系统,公安系统,我们需要保存数据完整的变动信息和历史.这…
KeyAttribute 设置主键.如果为int类型,将自动设置为自增长列. 系统默认以Id或类名+Id作为主键.StringLengthAttribute 可设置最大最小长度以及验证提示信息等.最大长度会映射到数据库.MaxLengthAttribute 最大长度.会映射的数据库.ConcurrencyCheckAttribute 修改或删除时,将带此属性的列的原有值与主键一起传送到数据库,如果传递的值与数据库中不一致,则修改或删除失败.用于并发检查.RequiredAttribute 必填字…
ADO.NET Entity Framework 以 Entity Data Model (EDM) 为主,将数据逻辑层切分为三块,分别为 Conceptual Schema, Mapping Schema 与 Storage Schema 三层,其上还有 Entity Client,Object Context 以及 LINQ 可以使用. 一 .引入entityframework实体框架 新建项目后,这里我使用的是entityframework连接Mysql数据库: 项目右击 >> 管理Nu…
EF - EntityFrameWork 中文名:实体框架(数据持久化框架) 1.使用EF查询(Linq to EF) 1.1使用标准查询运算符来查询 OumindBlogEntities db = new OumindBlogEntities(); IQueryable<BlogArticle> list = db.BlogArticles.Where(a => a.ACate==2); 1.2使用Linq to EF //1.EF默认使用延迟加载 //1.1 IQueryable&l…
Entity FrameWork(实体框架)是以ADO.NET Entity FrameWork ,简称为EF Entity FrameWork的特点 1.支持多种数据库(MSSQL.Oracle.Mysql和DB2) 2.强劲的映射引擎,能很好地支持存储过程 3.提供Visual Studio集成工具,进行可视化操作 4.能够与ASP.NET.WPF.WCF Data Services进行很好的集成 EF的优缺点 EF的优点 1.极大地提高开发效率,开发代码都是强类型的,写代码效率非常高,自动…
实体框架由 EF 设计器(包含在 Visual Studio 中)和 EF Runtime(在 NuGet 上提供)组成. EF 设计器包含在 Visual Studio 中 最新版本的实体框架设计器包含在 Visual Studio 2012 中. 如果您执行的是 Visual Studio 2012 自定义安装,那么您将需要确保 Microsoft Web Developer Tools 或 Microsoft SQL Server Data Tools 已选中,否则 EF 设计器将不会安装…
什么是Entity Framework呢(下面简称EF)? EF(实体框架)是ADO.NET中的一组支持开发面向数据的软件应用程序的技术,是微软的一个ORM框架.ORM(对象关系映射框架):指的是面向对象的对象模型和关系型数据库的数据结构之间的相互转换. 如此官方的解释,你懂吗? 我理解的是,业务实体在内存中表现为对象,在数据库中表现为数据,内存中的对象之间,存在关联和继承关系,而在数据库中,关系数据无法直接表达这些关系.而对象-关系映射(ORM)就是解决这一问题的.ORM作为一个中间件,实现程…