在 Rafy 领域实体框架中,对自关联的实体结构做了特殊的处理,下面对这一功能进行讲解。 场景 在开发数据库应用程序时,往往会遇到自关联表的场景。例如,分类信息、组织架构中的部门、文件夹信息等,都是不
微软的Entity Framework 受到越来越多人的关注和使用,Entity Framework7.0版本也即将发行。虽然已经开源,可遗憾的是,国内没有关于它的书籍,更不用说好书了,可能是因为EF版本更新太快,没人愿意去花时间翻译国外关于EF的书籍。使用Entity Framework开发已经有3年多了,但用得很肤浅,最近想深入学习,只好找来英文书《Entity Framework 6 Recipes》第二版,慢慢啃。首先需要说明的是,我英文不好,只是为了学习EF。把学习的过程写成博客,一是督促自己,二是希望能帮助有需要的朋友。EF是微软极力推荐的新一代数据库访问技术,它已经成熟,做为一名.NET开发人员,如果你还没有使用它的话,那感紧开始吧,特别是DDD(领域驱动设计)的爱好者,更应该学习它,因为它是领域模型的绝佳搭档!另外,本书也是一本关于EF的佳作(其实,英文的关于EF的书也就那么几本,中文的目前还没有,只有一些零星的资料,这会让初学者会感觉到混乱,特别是什么EDMX文件、Code First、Model First、Database First、表拆分,实体拆分,TPT,TPH,TPC,CodeFirst和DDD的配合等等),就从本系列开始对EF进行一个系统的学习吧,老鸟也可以从中了解不少的知识点。文中肯定有很多翻译不当的地方,恳请你指正,以免误导大家。谢谢!由于书中的代码只贴出核心部分,如果你想运行示例代码,可以加入QQ群下载,因为太大,超过博客园的限制,所以这里提供不了下载。要说的就这么多,下面就开始这一段学习过程吧。
1、EF等ORM解决方案出现的原因 因为软件开发中分析和解决问题的方法已经接近成熟,然后关系型数据库却没有,很多年来,数据依然是保存在表行列这样的模式里,所以,在面相对象和高度标准化的数据库中产生了一个失配(不匹配、阻抗失配,微软的安德斯.海尔斯伯格<C#之父>可能会这样叫它),为了解决这个失配,大多数项目中都会引入"数据处理层"来转换应用程序实体层的数据到数据库的行和列中,随着"数据处理层"的不断进化,最后ORM就诞生了。 2、集成查询语言LINQ LINQ和EF都出自于微软,都能帮助我们解决失配的问题.
Rafy 领域实体框架发布后,虽然有帮助文档,许多朋友还是反映学习起来比较复杂,希望能开发一个示例程序,展示如何使用 Rafy 领域实体框架所以,本文通过使用 Rafy 领域实体框架来改造一个传统的三层架构应用程序——“服装进销存”系统,来讲解如何使用 Rafy 领域实体框架进行数据库应用程序的快速开发,以及替换为使用 Rafy 框架后带来的一些新功能。 完整示例包下载地址:http://pan.baidu.com/s/1AB9TL,其中包含本次改造前、改造后的源代码,以及转换说明文档。(下载该示例代码后,
随着.NET Framework 3.5 SP1和Visual Studio 2008 SP1的正式发布。ADO.NET 实体框架正式来到开发人员的面前,它使开发人员可以通过对象模型(而不是逻辑/关系数据模型)专注于数据。实体框架有助于将逻辑数据架构抽象为概念模型,并且允许以多种方式通过对象服务和名为“EntityClient”的新数据提供程序与概念模型交互。 实体框架组件 实体框架使开发人员可以编写更少的数据访问代码,减少维护,将数据结构抽象化为更易于开展业务(标准化程度较低)的方式,并且有利于数据的持久
本系列演示如何使用 Rafy 领域实体框架快速转换一个传统的三层应用程序,并展示转换完成后,Rafy 带来的新功能。 《福利到!Rafy(原OEA)领域实体框架 2.22.2067 发布!》 《Rafy 领域实体框架示例(1) - 转换传统三层应用程序》 《Rafy 领域实体框架演示(2) - 新功能展示》 《Rafy 领域实体框架演示(3) - 快速使用 C/S 架构部署》 前言 支持一款与 Access 类似的文件型数据库,对于一些绿色安装的应用程序来说是非常必须的。使用 Rafy 领域实体框架开发的应
背景 在前一篇文章《【初学者指南】在ASP.NET MVC 5中创建GridView》中,我们学习了如何在 ASP.NET MVC 中实现 GridView,类似于 ASP.NET web 表单的功能
本文的演示需要先完成上一篇文章中的演示:《Rafy 领域实体框架示例(1) - 转换传统三层应用程序》。在完成改造传统的三层系统之后,本文将讲解使用 Rafy 实体框架后带来的一些常用功能。 数据库自
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/huyuyang6688/article/details/41526763
距离“上次框架完整发布”已经过去了一年半了,应群中的朋友要求,决定在国庆放假之际,把最新的框架发布出来,并把帮助文档整理出来,这样可以方便大家快速上手。 08104816-68bbd9d568c049c08150b6cc83d1ac15.gif 发布内容 注意,本次发布,只包含 Rafy 框架中的领域实体框架及相关文档。不包含“界面自动生成”等其它组件。 安装新的发布包:《使用 NuGet 下载最新的 Rafy 框架及文档》。 网页版用户手册(实时更新):《http://zgynhqf.github.io/
本篇博客简单描述了Repository模式在OEA中的应用。 不使用Repository时的问题 OEA框架中使用了DDD的思想,面向领域对象进行开发。在DDD中,有很多重要的概念,例如:聚合实体对象、值对象、仓储、工厂、服务等。(不太了解的Repository和DDD的朋友,可以看Evans写的《Domain Driven Design》。) 在OEA中,实体的实现框架使用了CSLA分布式框架。原来为了简单并保持和CSLA开发模式的兼容,一直都把实体的获取模式直接以静态方法的方式直
实体框架Entity Framework 是 ADO.NET 中的一组支持开发面向数据的软件应用程序的技术。是微软的一个ORM框架。
如果在 EF OnModelCreating 中配置了实体外键映射,也就是 SQL Server 中的 ForeignKey,那么我们在添加实体的时候,主实体的主键值会自动映射到子实体的外键值,并且这个操作在一个 SaveChanges 中,但如果没有在 OnModelCreating 中进行外键映射配置,我们添加实体的时候,就不会自动映射外键值了,什么意思呢?我们先看一个示例代码: public class SchoolDbContext : DbContext{ public SchoolDbCo
.NET Core 3.0 是 .NET Core 平台的下一主要版本。本文回顾了 .Net Core 发展历史,并展示了它是如何从基本支持 Web 和数据工作负载的版本 1,发展成为能够运行 Web、桌面、机器学习、容器、IoT 等的版本 3.0。
前面两篇文章我们分别讲了MVC下的视图和控制器,这章我们要讲模型(model),这章由于涉及到基架的使用,还有对模型绑定后数据库相关知识,可能会 很抽象,慢慢来吧,↖(^ω^)↗!在这之前可以先看看老师上课提的几个问题,相信看完了,你就对MVC中的模型有了个初步的了解了!
日常开发中,经常会碰到一些自引用的实体,比如系统菜单、目录实体,这类实体往往自己引用自己,所以我们必须学会使用Code First来建立这一类的模型. 以下是自引用表的数据库关系图: ok,下面开始介
实体框架(Entity Framework)简称EF,是微软以ADO.NET为基础所发展出来的对象关系对应(O/R Mapping)解决方案。是ADO.NET中的一组支持开发面向数据的软件应用程序的技术。是微软的一个ORM框架。
OEA 框架提供了多种方式来优化分布式数据查询的性能,本篇将会说明如何以声明 OEA 冗余属性的方式,来实现轻量级的数据冗余,以减少关联查询次数及网络数据传输量,提高分布式应用程序性能。 冗余属性功能说明 OEA 冗余属性在框架层面提供了一种易用的机制,把指定冗余路径的关系对象中的属性值复制到本对象中,以解决关联查询、关联数据量等性能问题。应用开发人员只需要简单的定义一个冗余属性,而框架会自动完成对冗余属性的赋值、更新操作。 ORM 中的 N+1 问题示例 在进销存示例中,采购订单的列表界面中,每一行采购订
按照最新的功能,更新了最新版的《Rafy 领域实体框架的介绍》,内容如下: 本文包含以下章节: 简介 特点 优势 简介 Rafy 领域实体框架是一个轻量级 ORM 框架。 与一般的 ORM 框架不同的是,它不只关注于一般性的面向对象实体与关系数据库的映射,而是更关注于富领域模型(聚合实体)与关系数据库的映射。使得开发者可以非常方便地使用富领域模型的同时,配备强大的实体属性设计、查询功能,并兼顾了极高的开发效率。 该框架可脱离 Rafy 框架其它组件独立运行,同时集领域驱动设计、面向服务架构、模型驱动架构、产
介绍 在这篇文章中,我们将会学习如何在 ASP.NET MVC 中创建一个 gridview,就像 ASP.NET Web 表单中的 gridview 一样。服务器端和客户端有许多可用的第三方库,这些库能够提供所有必需的功能,如 Web 表格中的搜索、排序和分页等。是否包含这些功能,取决于应用的特殊需求,例如在客户端和服务器端提供搜索或其它功能的需求等。 可用的库 以下是一些可用的库和插件: Grid.Mvc MVCGrid.NET PagedList.MVC JQuery.Grid JQuery Grid
上一篇《企业 SOA 设计(1)–ESB 设计》中,写到我们的 SOA 设计分为两个层面来进行:一个是系统间的 SOA 设计,主要通过 ESB 来完成;另一方面则是单个应用系统内部的 SOA 设计,本篇将会就后者进行详细说明。 平台整体结构 在产品开发过程中,为了达到业务级别的较大粒度重用,我们需要把纵向把业务进行拆分,以业务组件的形式进行开发,并最终把多个开发完成的业务组件进行组合,形成最终的软件产品。 按照组件化开发的产品,是基于一个公共的产品开发平台来建立的。由平台来提供所有的底层设施。平台包括技术平
本系列演示如何使用 Rafy 领域实体框架快速转换一个传统的三层应用程序,并展示转换完成后,Rafy 带来的新功能。 《福利到!Rafy(原OEA)领域实体框架 2.22.2067 发布!》 《Rafy 领域实体框架示例(1) - 转换传统三层应用程序》 《Rafy 领域实体框架演示(2) - 新功能展示》 以 Rafy 开发的应用程序,其实体、仓库、服务代码不需要做任何修改,即可同时支持单机部署、C/S 分布式部署。本文将说明如果快速使用 C/S 分布式部署。 前言 截止到上一篇,我们开发的应用程序都是采
【引】周末的清晨,少有的好天气冲走不少日常中的忙乱和阴霾,石头兄弟给我发来了一篇文章“system abstraction”(https://cacm.acm.org/magazines/2022/4/259395-systems-abstractions/fulltext),颇有感触,不敢私藏,加入了自己的观点,编译成文。
WCF Data Services 5.0已经在4月9日发布,支持OData V3版本的协议。之前版本的WCF Data Services是随.NET FX 4.0发布的,这次是单独提供了安装包下载。这个版本有几个特性很不错,具体参看文章 http://blogs.msdn.com/b/writingdata_services/archive/2012/04/09/my-favorite-things-in-odata-v3-and-wcf-data-services-5-0.aspx。 新特性主要用于支持
前言 Rafy 领域实体框架作为一个使用领域驱动设计作为指导思想的开发框架,必然要处理领域实体到数据库表之间的映射,即包含了 ORM 的功能。由于在 09 年最初设计时,ORM 部分的设计并不是最重要的部分,那里 Rafy 的核心是产品线工程、模型驱动开发、界面生成等。所以当时,我们简单地采用了一个开源的小型 ORM 框架:《Lite ORM Library》。这个 ORM 框架可以生成比较简单的 Sql 语句,以处理一般性的情况。 随着不断使用,我们也不断对 ORM 的源码做了不少改动,让它在支持简单
TypeORM 是一个ORM (opens new window)框架,它可以运行在 NodeJS、Browser、Cordova、PhoneGap、Ionic、React Native、Expo 和 Electron 平台上,可以与 TypeScript 和 JavaScript (ES5,ES6,ES7,ES8)一起使用。 它的目标是始终支持最新的 JavaScript 特性并提供额外的特性以帮助你开发任何使用数据库的(不管是只有几张表的小型应用还是拥有多数据库的大型企业应用)应用程序。
关于EntityFramework Core有三个重要的引用和三条重要的命令,掌握以这六条,基本用Entity Framework Core就得心应手了。 引用1:Install-PackageMicrosoft.EntityFrameworkCore.SqlServer 这是SqlServer的Entity FrameworkCore的“驱动程序”。不同的数据库这条引用不同,此处仅以SqlServer为例。 引用2:Install-PackageMicrosoft.EntityFrameworkCore.
本月给公司内部一个项目做架构重构,其中使用到了 Rafy 框架。所以我培训了 Rafy 领域实体框架的使用方法,过程中录制了视频,方便其他同事查看。现在把视频放到园里来分享下,有兴趣的朋友可以看看,有什么问题可以进 Rafy QQ 群询问。 关于 Rafy 开源框架的详细介绍:《Rafy 领域实体框架 2.22.2067 发布!》。 如何下载并使用框架:《使用 NuGet 下载最新的 Rafy 框架及文档》。 本次培训一共有 7 个视频: 1.老系统架构讲解、新系统架构思想简介 2.新架构、开发流程介绍
Entity Framework 4的特性介绍可看这篇文章 .NET 4中Entity Framework简介,其中最感兴趣的一点就是对POCO的支持了:EF4为实体提供了简单传统CLR对象(Plain Old CLR Object / POCO)支持。您的实体对象可以独立于EF存在,由此EF更好地支持了测试驱动开发(test-driven development)和领域驱动设计(domain-driven design)。同时,EF仍旧可以帮助跟踪POCO实体的变化,允许延迟加载,也会自动修正对导航属性(
belongs to 会与另一个模型建立了一对一的连接。 这种模型的每一个实例都“属于”另一个模型的一个实例。
工具菜单----选项----Designers(设计器)----表设计器和数据库设计器----阻止保存要求重新创建表的更改 取消勾选即可
为了让开发者更方便地使用 Rafy 领域实体框架,本月,我们已经把最新版本的 Rafy 框架程序集发布到了 nuget.org 上,同时,还把 RafySDK 的最新版本发布到了 VisualStudio 插件仓库中。 以下说明如何下载、更新最新的 SDK 及程序集。 下载、更新最新的 RafySDK 在 VisualStudio 中打开扩展管理器(Tools -> Extensions and Updates),选择在线项目,并搜索 “Rafy” 安装即可。如下图: 同样,只需要在扩展管理器中,就
反序列化具有不受信任输入的 DataTable 时,攻击者可创建恶意输入来实施拒绝服务攻击。 有可能存在未知的远程代码执行漏洞。
最近使用 DocFX 对 Rafy 框架的帮助文档进行了升级。 SandCastle 之前 Rafy 框架的帮助文档,是使用 SandCastle 来编写的(https://github.com/EW
1、EF的常用使用场景 (1)、维护一个已经存在的数据库,VS提供了工具帮助我们把数据库中的表和视图等对象导入到实体框架. [数据库=>模型(Database First)] (2)、通过VS提供的实体设计器设计表模型,然后从头开始添加实体类型、类型间的关联以及继承体系到设计器中.模型创建好后,然后根据模型生成数据库. [模型=>数据库(Model First)] (3)、EF还提供了以代码为中心的模型设计方式,通过这种方式我们可以在不使用设计器的情况下,手工创建一系列的领域类、领域类
本文主要介绍通过EF的设计器来同步数据库和对应的实体类.并使用生成的实体上下文,来进行简单的增删查该操作 1、通过EF设计器创建一个简单模型 (1)、右键目标项目添加新建项 (2)、选择ADO.Net
调用或引用了 DataSet.ReadXml 方法,并且该方法不在自动生成的代码内。
一:类型 约束的类型一共分三种 域约束: 涉及一个或多个列,(限制某一列的数据大于0) 实体约束: 相同的值不能存在于其他的行中 引用完整性约束: 一个表中的一个列与某个表中的另一个列的值匹配 二:命名 约束是可以命名的 一般这样命名: pk_customer_*** pk代表主键 customer代表主键所在的表 后面是你自己定义的(要确保整个名称的唯一性) 三:主键约束 主键约束:一般就是id, 一个表中最多有一个主键 例子1 use accounting create table employee (
本文主要讲EF一对多关系和多对多关系的建立 一、模型设计器 1、一对多关系 右键设计器新增关联 导航属性和外键属性可修改 2、多对多关系 右键设计器新增关联 模型设计完毕之后,根据右键设计器根据模型生
带有 System.Web.Services.WebMethodAttribute 或 System.ServiceModel.OperationContractAttribute 的方法具有可能引用 DataSet 或 DataTable 的参数。
这样database first的实现已经基本上完成了,如果想要用ModelFirst的方式,在第3步选择”空EF设计器模型“,在edmx文件中自己添加数据表即可。接下来通过代码来实现对数据库的操作。不管是DBFirst,ModelFirst还是CodeFirst,代码都是通用的。
EntityFramework数据持久化复习资料3、EntityFramework引入
在Mono 团队Xamarin获得1200W美金融资 后,Xamarin的 Miguel de Icaza's (Mono项目创始人)在博客上发布了他们的Mono2.11的第四个预览版2.11.3:http://tirania.org/blog/archive/2012/Aug-13.html 。 Mono 2.11带来了许多变化,2.11.3的一大特色是整合了微软的实体框架,微软实体框架是一个.NET ORM框架,Entity Framework在2012年7月20日在Apache 2.0 许可下开源了。
MVC MiniProfiler是Stack Overflow团队设计的一款对ASP.NET MVC、WebForm 以及WCF 的性能分析的小程序。可以对一个页面本身,及该页面通过直接引用、Ajax、Iframe形式访问的其它页面进行监控,监控内容包括数据库内容,并可以显示数据库访问的SQL(支持EF、EF CodeFirst等 )。并且以很友好的方式展现在页面上。 该Profiler的一个特别有用的功能是它与数据库框架的集成。除了.NET原生的 DbConnection类,profiler还内置了对实体
ent 是一个由 Facebook 开发的 Go 语言的实体框架,用于构建和维护数据模型。它提供了一种简单的方式来定义、交互和查询数据。
右键项目引用选择管理NuGet管理嚣后在浏览里搜索ML,然后找到Microsoft.ML和Microsoft.ML.FastTree进行安装
ASP.NET WEB+EntityFramework数据持久化——考核练习库——1、
NuoDB 1.1包含ADO.NET驱动、LINQ和EF提供程序,支持64位Windows和Azure,同时还对性能做了提升。 NuoDB是一个分布式云数据库系统,全面支持SQL查询和ACID事务,它基于一个能够向文件系统、Amazon S3或者HDFS中持久化数据的键-值存储管理器构建。NuoDB 1.0 GA发布于2013年1月,在两个修正了部分问题的小版本之后发布了版本1.1,该版本对以下三个方面做了增强和提升: .NET/Windows 支持Windows Server、64位Windows 7和8
基本结构:客户端向服务器发送命令(如给目标rtx号码发送提醒、短信、访问组织和用户信息等)。 1.首先要把原生API做一个基础接口封装,将RTXSDK内部的对象和状态屏蔽掉,使得开发人员不用关心内部逻
Vs.net 2008 sp1新特性之Dynamic Data Web Site 介绍 asp.net的动态数据,是一个web site开发框架,可让您很容易建立数据驱动的asp.net的Web应用程序。通过自动获取数据模型元数据在运行时产生的用户界面和行为。在这个框架内提供了一个查看和编辑数据的网站。您可以轻松地自定义控件和页面元素或建立新的预设的行为。同时创建的应用能够轻松集成数据和页面中的元素绑定。 功能 通过读取数据库的结构或是数据模型,生成标准的asp.net web UI表单 支持数据
领取专属 10元无门槛券
手把手带您无忧上云