惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

罗磊的独立博客
Cisco Talos Blog
Cisco Talos Blog
C
Check Point Blog
博客园_首页
Recent Commits to openclaw:main
Recent Commits to openclaw:main
Martin Fowler
Martin Fowler
Recorded Future
Recorded Future
S
Security @ Cisco Blogs
L
LINUX DO - 最新话题
博客园 - 司徒正美
P
Privacy International News Feed
G
Google Developers Blog
I
Intezer
Hacker News - Newest:
Hacker News - Newest: "LLM"
博客园 - 聂微东
The GitHub Blog
The GitHub Blog
C
Cybersecurity and Infrastructure Security Agency CISA
www.infosecurity-magazine.com
www.infosecurity-magazine.com
Scott Helme
Scott Helme
K
Kaspersky official blog
I
InfoQ
Y
Y Combinator Blog
T
The Blog of Author Tim Ferriss
Webroot Blog
Webroot Blog
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
大猫的无限游戏
大猫的无限游戏
D
Docker
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
W
WeLiveSecurity
Microsoft Azure Blog
Microsoft Azure Blog
Spread Privacy
Spread Privacy
量子位
H
Hacker News: Front Page
Simon Willison's Weblog
Simon Willison's Weblog
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
SecWiki News
SecWiki News
S
Security Affairs
Latest news
Latest news
人人都是产品经理
人人都是产品经理
C
CERT Recently Published Vulnerability Notes
S
Security Archives - TechRepublic
V
Visual Studio Blog
T
Troy Hunt's Blog
S
Secure Thoughts
F
Fortinet All Blogs
V
V2EX
The Register - Security
The Register - Security
J
Java Code Geeks
MongoDB | Blog
MongoDB | Blog
K
KPMG report finds enterprise disconnect between AI and its ROI | CIO

博客园 - faib

代码生成器(CodeBuilder) 2.9.4 稳定版 代码生成器(CodeBuilder) 2.9.3 稳定版 Fireasy新版本发布 Winform快速开发组件的实现(二) Winform快速开发组件的实现(一) 注意Activator.CreateInstance两个重载方法的性能 Fireasy.Data系列——发布测试版本 Fireasy.Data系列——线程内IDatabase的传递 Fireasy.Data系列——数据库架构的整合查询 Fireasy.Data系列——数据库提供者的插件服务簇 Fireasy.Data系列——几种数据库的大数据批量插入 Fireasy.Data系列——底层结构 我想组建新的Entity框架 轻量的Json序列化 ReSharper 不为人知的罪恶选项 AxTools.VS10x.CodeMap注册机 3个月时间完成工作流项目 历时半年,发布最完整的代码生成器CodeBuilder最新版本 最新版本的CodeBuilder 1.0.0.1446
Fireasy.Data系列——概述
faib · 2011-11-11 · via 博客园 - faib

        在上一篇中我曾提到过要组建实体框架,不管我的出发点是好还是坏,我总算把它做出了一个雏形,并且已经能够加入到项目中使用了,当然还有许多的事情要处理,也需要更多的实例验证,才能不断的完善。

相比以前的FaibClass.Data,它已经显得更强大了,但是还没有实现实体的继承关系。

        Fireasy系列组件是在.net framework 4.0环境下编写的,但是没有使用太多的4.0特性,Fireasy.Data.Entity还包括两个依赖组件:Fireasy.Common和Fireasy.Data。

        今天首先开个序,详细的功能我会慢慢的介绍,下面先晒一下Fireasy.Data.Entity的特性:

1、依赖属性

        采用依赖属性的方式进行定义,属性分为普通属性和特殊属性,普通属性是数据库字段所对应的属性,特殊属性包括引用实体属性、实体集属性、引用属性、枚举文本属性和同步属性(暂未实现)。这跟EF里的叫法差不多,不过遗憾的是EF不支持枚举的定义。

        依赖属性定义为静态成员,并且放入缓存中进行管理,实体属性的读取或赋值与WPF里类似,也是使用GetValue和SetValue两个方法。

        属性修改时提供了通知事件,以后还要加入属性的验证特性。

2、按需更新

        在对一个实体对象进行修改的时候,只把更改过的属性值写进去,这样能够避免不必要的操作。并且,如果实体对象所关联的实体或实体集被修改,也会将相应的改变更新到数据库。如果将一个特殊属性设为null,也会删除该属性原来的对象。

        实体更新的深度只限有两层,这主要是考虑到执行效率,不断的逐层更新也是可以的,但这样效率将大大降低。比如,一个实体对象的更新,可以同时更新它的引用实体A和实体集S,但是引用实体A的引用实体B是无法更新到的。

3、延迟加载

        对引用实体和实体集属性,可设定三种行为进行加载,如果用在WCF或WS中,如果始终加载或延迟加载,都将造成所有数据的一次性加载,此时可以将加载过程关闭,而采用手动方式在需要的时候再获取。

4、删除标记

        提供了假删除的支持,在属性定义的时候可以标记该属性是否是删除标记,在之后的所有查询将过滤标记为true的实体,在执行删除时,可以决定是彻底删除呢还是假删除。

5、环境变量

        可以将一个实体映射到不同的数据表,比如按年度进行划分,2010年使用 TB_USER_2010,2011年使用TB_USER_2011等,以解决大数据存储的问题。也可以由具体的环境,比如用户、部门等变量来组合映射。

6、实体树

        提供了实体树的插入、移动、删除、查找等功能,只要定义相关的映射信息,即可快速实现树型结构的管理。实体树采用内码的方式进行管理,如0001,00010001。

7、LINQ查询

        本框架也提供了LINQ查询的支持,目前支持sqlserver、oracle、sqlite和mysql等几种常用数据库语法的解析。

8、环境事务

        与TransactionScope类似,为一代码段提供事务控制。

        好象就以上这些东东,详细的使用方法将会在以后一一进行介绍。