微软的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群下载,因为太大,超过博客园的限制,所以这里提供不了下载。要说的就这么多,下面就开始这一段学习过程吧。
如果在 EF OnModelCreating 中配置了实体外键映射,也就是 SQL Server 中的 ForeignKey,那么我们在添加实体的时候,主实体的主键值会自动映射到子实体的外键值,并且这个操作在一个 SaveChanges 中,但如果没有在 OnModelCreating 中进行外键映射配置,我们添加实体的时候,就不会自动映射外键值了,什么意思呢?我们先看一个示例代码: public class SchoolDbContext : DbContext{ public SchoolDbCo
1、EF等ORM解决方案出现的原因 因为软件开发中分析和解决问题的方法已经接近成熟,然后关系型数据库却没有,很多年来,数据依然是保存在表行列这样的模式里,所以,在面相对象和高度标准化的数据库中产生了一个失配(不匹配、阻抗失配,微软的安德斯.海尔斯伯格<C#之父>可能会这样叫它),为了解决这个失配,大多数项目中都会引入"数据处理层"来转换应用程序实体层的数据到数据库的行和列中,随着"数据处理层"的不断进化,最后ORM就诞生了。 2、集成查询语言LINQ LINQ和EF都出自于微软,都能帮助我们解决失配的问题.
本文主要介绍通过EF的设计器来同步数据库和对应的实体类.并使用生成的实体上下文,来进行简单的增删查该操作 1、通过EF设计器创建一个简单模型 (1)、右键目标项目添加新建项 (2)、选择ADO.Net
Rafy 领域实体框架发布后,虽然有帮助文档,许多朋友还是反映学习起来比较复杂,希望能开发一个示例程序,展示如何使用 Rafy 领域实体框架所以,本文通过使用 Rafy 领域实体框架来改造一个传统的三层架构应用程序——“服装进销存”系统,来讲解如何使用 Rafy 领域实体框架进行数据库应用程序的快速开发,以及替换为使用 Rafy 框架后带来的一些新功能。 完整示例包下载地址:http://pan.baidu.com/s/1AB9TL,其中包含本次改造前、改造后的源代码,以及转换说明文档。(下载该示例代码后,
本文主要讲EF一对多关系和多对多关系的建立 一、模型设计器 1、一对多关系 右键设计器新增关联 导航属性和外键属性可修改 2、多对多关系 右键设计器新增关联 模型设计完毕之后,根据右键设计器根据模型生
前面两篇文章我们分别讲了MVC下的视图和控制器,这章我们要讲模型(model),这章由于涉及到基架的使用,还有对模型绑定后数据库相关知识,可能会 很抽象,慢慢来吧,↖(^ω^)↗!在这之前可以先看看老师上课提的几个问题,相信看完了,你就对MVC中的模型有了个初步的了解了!
本篇博客简单描述了Repository模式在OEA中的应用。 不使用Repository时的问题 OEA框架中使用了DDD的思想,面向领域对象进行开发。在DDD中,有很多重要的概念,例如:聚合实体对象、值对象、仓储、工厂、服务等。(不太了解的Repository和DDD的朋友,可以看Evans写的《Domain Driven Design》。) 在OEA中,实体的实现框架使用了CSLA分布式框架。原来为了简单并保持和CSLA开发模式的兼容,一直都把实体的获取模式直接以静态方法的方式直
按照最新的功能,更新了最新版的《Rafy 领域实体框架的介绍》,内容如下: 本文包含以下章节: 简介 特点 优势 简介 Rafy 领域实体框架是一个轻量级 ORM 框架。 与一般的 ORM 框架不同的是,它不只关注于一般性的面向对象实体与关系数据库的映射,而是更关注于富领域模型(聚合实体)与关系数据库的映射。使得开发者可以非常方便地使用富领域模型的同时,配备强大的实体属性设计、查询功能,并兼顾了极高的开发效率。 该框架可脱离 Rafy 框架其它组件独立运行,同时集领域驱动设计、面向服务架构、模型驱动架构、产
随着.NET Framework 3.5 SP1和Visual Studio 2008 SP1的正式发布。ADO.NET 实体框架正式来到开发人员的面前,它使开发人员可以通过对象模型(而不是逻辑/关系数据模型)专注于数据。实体框架有助于将逻辑数据架构抽象为概念模型,并且允许以多种方式通过对象服务和名为“EntityClient”的新数据提供程序与概念模型交互。 实体框架组件 实体框架使开发人员可以编写更少的数据访问代码,减少维护,将数据结构抽象化为更易于开展业务(标准化程度较低)的方式,并且有利于数据的持久
距离“上次框架完整发布”已经过去了一年半了,应群中的朋友要求,决定在国庆放假之际,把最新的框架发布出来,并把帮助文档整理出来,这样可以方便大家快速上手。 08104816-68bbd9d568c049c08150b6cc83d1ac15.gif 发布内容 注意,本次发布,只包含 Rafy 框架中的领域实体框架及相关文档。不包含“界面自动生成”等其它组件。 安装新的发布包:《使用 NuGet 下载最新的 Rafy 框架及文档》。 网页版用户手册(实时更新):《http://zgynhqf.github.io/
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/huyuyang6688/article/details/41526763
对于我们而言选择ORM框架的目的,其实都是为了让我们的程序更好的操作数据库,提高开发编程效率和程序的维护拓展性。
本系列演示如何使用 Rafy 领域实体框架快速转换一个传统的三层应用程序,并展示转换完成后,Rafy 带来的新功能。 《福利到!Rafy(原OEA)领域实体框架 2.22.2067 发布!》 《Rafy 领域实体框架示例(1) - 转换传统三层应用程序》 《Rafy 领域实体框架演示(2) - 新功能展示》 《Rafy 领域实体框架演示(3) - 快速使用 C/S 架构部署》 前言 支持一款与 Access 类似的文件型数据库,对于一些绿色安装的应用程序来说是非常必须的。使用 Rafy 领域实体框架开发的应
本系列演示如何使用 Rafy 领域实体框架快速转换一个传统的三层应用程序,并展示转换完成后,Rafy 带来的新功能。 《福利到!Rafy(原OEA)领域实体框架 2.22.2067 发布!》 《Rafy 领域实体框架示例(1) - 转换传统三层应用程序》 《Rafy 领域实体框架演示(2) - 新功能展示》 以 Rafy 开发的应用程序,其实体、仓库、服务代码不需要做任何修改,即可同时支持单机部署、C/S 分布式部署。本文将说明如果快速使用 C/S 分布式部署。 前言 截止到上一篇,我们开发的应用程序都是采
在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 许可下开源了。
许多数据库开发人员负责创建的查询需要用来返回其应用程序所需的数据。您可能熟悉 LINQ(语言集成查询)工具,它允许数据库开发人员使用基于 Microsoft® .NET 的编程语言而非普通的 T-SQL 语句向数据库发出查询请求。SQL Server 2008 向 SQL 提供程序提供了新的 LINQ 命令,可以允许开发人员直接对 SQL Server 表和列发出 LINQ 命令,从而增强了 LINQ 的功能。这将缩短创建新数据查询所需的时间。 对数据库进行开发时,开发人员会使用较高级别对象,将其映射到
基本结构:客户端向服务器发送命令(如给目标rtx号码发送提醒、短信、访问组织和用户信息等)。 1.首先要把原生API做一个基础接口封装,将RTXSDK内部的对象和状态屏蔽掉,使得开发人员不用关心内部逻
上一篇《企业 SOA 设计(1)–ESB 设计》中,写到我们的 SOA 设计分为两个层面来进行:一个是系统间的 SOA 设计,主要通过 ESB 来完成;另一方面则是单个应用系统内部的 SOA 设计,本篇将会就后者进行详细说明。 平台整体结构 在产品开发过程中,为了达到业务级别的较大粒度重用,我们需要把纵向把业务进行拆分,以业务组件的形式进行开发,并最终把多个开发完成的业务组件进行组合,形成最终的软件产品。 按照组件化开发的产品,是基于一个公共的产品开发平台来建立的。由平台来提供所有的底层设施。平台包括技术平
本文的演示需要先完成上一篇文章中的演示:《Rafy 领域实体框架示例(1) - 转换传统三层应用程序》。在完成改造传统的三层系统之后,本文将讲解使用 Rafy 实体框架后带来的一些常用功能。 数据库自
JPA是Java Persistence API的简称,中文名Java持久层API,是JDK 5.0注解或XML描述对象-关系表的映射关系,并将运行期的实体对象持久化到数据库中。
文章目录 1. Hibernate注解之基本注解的注解使用 1.1. 使用注解须知 1.2. 类级别注解 1.3. 属性级别的注解 1.4. 主键相关的注解 1.5. 与非主键相关的注解 1.6. 实例 1.7. @JoinColumn 1.8. @JoinTabl 1.9. 参考文档 Hibernate注解之基本注解的注解使用 使用注解须知 我们在使用注解自动创建表的时候,系统会默认为我们创建一张表Hibernate_sequence,我们可以在Hibernate.cfg.xml文件中添加如下语句解决
实体框架Entity Framework 是 ADO.NET 中的一组支持开发面向数据的软件应用程序的技术。是微软的一个ORM框架。
本月给公司内部一个项目做架构重构,其中使用到了 Rafy 框架。所以我培训了 Rafy 领域实体框架的使用方法,过程中录制了视频,方便其他同事查看。现在把视频放到园里来分享下,有兴趣的朋友可以看看,有什么问题可以进 Rafy QQ 群询问。 关于 Rafy 开源框架的详细介绍:《Rafy 领域实体框架 2.22.2067 发布!》。 如何下载并使用框架:《使用 NuGet 下载最新的 Rafy 框架及文档》。 本次培训一共有 7 个视频: 1.老系统架构讲解、新系统架构思想简介 2.新架构、开发流程介绍
背景 在前一篇文章《【初学者指南】在ASP.NET MVC 5中创建GridView》中,我们学习了如何在 ASP.NET MVC 中实现 GridView,类似于 ASP.NET web 表单的功能
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实体的变化,允许延迟加载,也会自动修正对导航属性(
在 Rafy 领域实体框架中,对自关联的实体结构做了特殊的处理,下面对这一功能进行讲解。 场景 在开发数据库应用程序时,往往会遇到自关联表的场景。例如,分类信息、组织架构中的部门、文件夹信息等,都是不
.NET Core 3.0 是 .NET Core 平台的下一主要版本。本文回顾了 .Net Core 发展历史,并展示了它是如何从基本支持 Web 和数据工作负载的版本 1,发展成为能够运行 Web、桌面、机器学习、容器、IoT 等的版本 3.0。
通过annotation(注解)来映射实体类和数据库表的对应关系,基于annotation的主键标识为@Id注解, 其生成规则由@GeneratedValue 设定的.这里的@id 和@GeneratedValue 都是 JPA 的标准用法。 其中:JPA 提供的四种标准用法为 TABLE,SEQUENCE,IDENTITY,AUTO。由于我们使用的是 hibernate 实现,它也支持 hibernate 中定义的生成规则。
使用EF Core的第一步是创建数据模型,模型建的好,下班走的早。EF Core本身已经设置了一系列约定来帮我们快速的创建模型,例如表名、主键字段等,毕竟约定大于配置嘛。如果你想改变默认值,很简单,EF Core提供了Fluent API或Data Annotations两种方式允许我们定制数据模型。
最近使用 DocFX 对 Rafy 框架的帮助文档进行了升级。 SandCastle 之前 Rafy 框架的帮助文档,是使用 SandCastle 来编写的(https://github.com/EW
继上一篇,以及上上篇,我们对SqlSugar有了一个大概的认识,但是这并不完美,因为那些都是理论知识,无法描述我们工程开发中实际情况。而这一篇,将带领小伙伴们一起试着写一个能在工程中使用的模板类。
企业架构包括多种不同类型,如包括业务架构、数据架构、应用架构和技术架构等。其中数据架构的主要目标是有效地管理数据,以及有效地管理存储和使用数据的系统。
NET Framework 3.5 SP1提供了以下新功能和改进: 1、ASP.NET 动态数据,它提供了丰富的框架,从而使用户可以快速进行数据驱动的开发,而无需编写代码;ASP.NET AJAX 的一项新增功能,对管理浏览器历史记录提供了支持(支持后退按钮); 2、对公共语言运行时的核心改进包括:改进了 .NET Framework 本机映像的布局、选择不再对完全受信任的程序集进行强名称验证、提高了应用程序启动性能、改进了生成的代码以缩短端对端应用程序执行时间、选择在 ASLR(地址空间布局随机化)模式
实体框架(Entity Framework)简称EF,是微软以ADO.NET为基础所发展出来的对象关系对应(O/R Mapping)解决方案。是ADO.NET中的一组支持开发面向数据的软件应用程序的技术。是微软的一个ORM框架。
1、EF的常用使用场景 (1)、维护一个已经存在的数据库,VS提供了工具帮助我们把数据库中的表和视图等对象导入到实体框架. [数据库=>模型(Database First)] (2)、通过VS提供的实体设计器设计表模型,然后从头开始添加实体类型、类型间的关联以及继承体系到设计器中.模型创建好后,然后根据模型生成数据库. [模型=>数据库(Model First)] (3)、EF还提供了以代码为中心的模型设计方式,通过这种方式我们可以在不使用设计器的情况下,手工创建一系列的领域类、领域类
其中数据模型可以分为:概念数据模型(Concept Data Model)、逻辑数据模型(Logical Data Model)和物理数据模型(Physical Data Model)。
Paul Hiles: 3 ways to avoid an anemic domain model in EF Core 1.引言 在使用ORM中(比如Entity Framework)贫血领域模型十分常见 。本篇文章将先探讨贫血模型的问题,再去探究在EF Core中使用Code First时如何使用简单的方法来避免贫血模型。 2.什么是贫血模型 在对领域建模后,输出一系列类中仅包含一些简单属性声明而不包含业务逻辑的模型,就属于贫血模型。当使用Entity Framework时,它们不仅仅是简单的数
前段时间因为项目需要搭建一个web服务器,后端Web框架我调研了几个,比如Python的Flask,Django, NodeJs的Express,JavaEE的Spring,以及C++的CppCMS, 经过权衡拓展性开发效率,最后选择了Django。 也许Python不是最好的选择,但至少目前来看工作的还挺顺利。
Nestjs 是我见过的,将 Typescript 与 Nodejs Framework 结合的最好的例子。
要充分利用 Spring Data for Apache Cassandra 支持中的对象映射功能,您应该使用注释对映射的域对象进行@Table注释。这样做可以让类路径扫描器找到并预处理您的域对象以提取必要的元数据。仅使用带注释的实体来执行模式操作。在最坏的情况下, SchemaAction.RECREATE_DROP_UNUSED操作会删除您的表并丢失数据。以下示例显示了一个简单的域对象:
ASP.NET WEB+EntityFramework数据持久化——考核练习库——1、
前言 Rafy 领域实体框架作为一个使用领域驱动设计作为指导思想的开发框架,必然要处理领域实体到数据库表之间的映射,即包含了 ORM 的功能。由于在 09 年最初设计时,ORM 部分的设计并不是最重要的部分,那里 Rafy 的核心是产品线工程、模型驱动开发、界面生成等。所以当时,我们简单地采用了一个开源的小型 ORM 框架:《Lite ORM Library》。这个 ORM 框架可以生成比较简单的 Sql 语句,以处理一般性的情况。 随着不断使用,我们也不断对 ORM 的源码做了不少改动,让它在支持简单
为了让开发者更方便地使用 Rafy 领域实体框架,本月,我们已经把最新版本的 Rafy 框架程序集发布到了 nuget.org 上,同时,还把 RafySDK 的最新版本发布到了 VisualStudio 插件仓库中。 以下说明如何下载、更新最新的 SDK 及程序集。 下载、更新最新的 RafySDK 在 VisualStudio 中打开扩展管理器(Tools -> Extensions and Updates),选择在线项目,并搜索 “Rafy” 安装即可。如下图: 同样,只需要在扩展管理器中,就
SqlSugar支持了3种模式的建表(无实体建表、实体建表,实体特性建表),非常的灵活
上一遍我介绍了AgileEAS.NET中统计的数据访问,本文我将来介绍AgileEAS.NET中的ORM实现思路。关于ORM的概念和介绍,我在此就不在重复介绍了,我相信大家都很熟悉这个概念了。 AgileEAS.NETORM并没有采用如NHibernate中映射文件的文件的模式,而是采用了直接硬编码的模式实现,ORM体系设计采用了属性/列>数据对象>数据集合(表)的结构: image.png 最基本的思路是一个记录/实体(IEntity)映射一条记录,一个实体包括若干属
随着Spring及Spring Boot的发展,基于Java的配置已经慢慢替代了基于xml的配置形式。本篇文章为大家整理和简介Spring Boot中常用的注解及其功能。
作为规范,Java Persistence API关注持久性,它将Java对象的创建过程和具体的创建形式解耦。并非所有Java对象都需要持久化,但大多数应用程序都会保留关键业务对象。JPA规范允许您定义应该保留哪些对象,以及如何在Java应用程序中保留这些对象。
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
在java工程的resources路径下创建一个名为META-INF的文件夹,在此文件夹下创建一个名为persistence.xml的配置文件
领取专属 10元无门槛券
手把手带您无忧上云