社区
.NET技术前瞻
帖子详情
大家评下 entity framework 与 NHibernate 优缺
GavinKeng
2011-08-15 10:07:06
如题
最近企业为了快速开发需要选择一种框架 希望能达到对代码的侵入性最小
大家评下
...全文
568
33
打赏
收藏
大家评下 entity framework 与 NHibernate 优缺
如题 最近企业为了快速开发需要选择一种框架 希望能达到对代码的侵入性最小 大家评下
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
33 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
dewson
2011-08-24
打赏
举报
回复
MARK...
porschev
2011-08-21
打赏
举报
回复
ORM框架就用过Mybatis。。。
jincaomao
2011-08-21
打赏
举报
回复
我个人觉得 entityframework 4.1里面的code fist还是很有意义的。
里面可以通过流畅api单独定义实体数据和存储之间的关系,实际上就相当于以前的数据设计了。
况且实际做项目的时候,不论是view、bll、dal 都有单独的实体数据格式,每层之间数据之间都有关系(一一映射、组合、继承等),但是并不是完全依赖。
况且entityframework生成的sql执行并不慢,所以我觉得挺好的。
theillusion
2011-08-21
打赏
举报
回复
飞翔大侠是不是说,通过定义原语操作把业务流程固定下来?
也不晓得载体是Product还是Material
更不知道组织机构是Customer还是Supplier
我关心的是具体的Product,Material,Customer,Supplier的持久化实现
bfmpdcnui
2011-08-21
打赏
举报
回复
都不敢用,太繁琐,用处不大
--缪军--
2011-08-21
打赏
举报
回复
[Quote=引用 28 楼 theillusion 的回复:]
我关心的是具体的Product,Material,Customer,Supplier的持久化实现
[/Quote]
类以职责为主体,而不是属性,假设需要设计N个product查询,他们的查询条件和输出字段都不相同
代码可以像是这样:
Method{MethodId,MethodName,Collection<Params>,Collection<DataKeys>...}
使用的时候:
Method ProductSearch1 = new Method("ProductSearch1");
DataTable Product1 = DAHelper.GetDataTable(ProductSearch1);
或者:JsonTable Product1 = DAHelper.GetJsonData(ProductSearch1);
CalvinR
2011-08-20
打赏
举报
回复
没怎么用过 顶帖!!!
种草德鲁伊
2011-08-19
打赏
举报
回复
又来了,我知道那是谁的马甲了。
theillusion
2011-08-19
打赏
举报
回复
飞翔大哥叙述的太抽象,能不能贴几个图说明一下
--缪军--
2011-08-19
打赏
举报
回复
[Quote=引用 23 楼 gengzhijun 的回复:]
引用 22 楼 moneysoft 的回复:
你是这样会不会 设计的太过了 很多时候使用ORM是为了更敏捷的开发 当然设计的东西越通用越好 你要知道 基本做不到 你这个项目设计的东西到下个项目还能用的 我指的的业务逻辑那块
[/Quote]
程序员不承担设计重用的问题,那是架构师的职责,架构师的日常任务就是重构,
所有重构的任务都是扩展企业库,
我指的重构,是完全独立的开发任务,并不回去修改任何已有的项目代码,
不存在"你这个项目设计的东西到下个项目还能用的"这种说法
GavinKeng
2011-08-19
打赏
举报
回复
[Quote=引用 22 楼 moneysoft 的回复:]
你定义一个单据业务的时候,并不知道他是什么单据,
也不晓得载体是Product还是Material
更不知道组织机构是Customer还是Supplier
只是针对行为或者说职责去设计,
这样,你设计出的业务可以重复使用在90%的单据处理,
不管他是采购计划,采购订单,入库单,销售订单,预售订单
[/Quote]
你是这样会不会 设计的太过了 很多时候使用ORM是为了更敏捷的开发 当然设计的东西越通用越好 你要知道 基本做不到 你这个项目设计的东西到下个项目还能用的 我指的的业务逻辑那块
--缪军--
2011-08-18
打赏
举报
回复
你定义一个单据业务的时候,并不知道他是什么单据,
也不晓得载体是Product还是Material
更不知道组织机构是Customer还是Supplier
只是针对行为或者说职责去设计,
这样,你设计出的业务可以重复使用在90%的单据处理,
不管他是采购计划,采购订单,入库单,销售订单,预售订单
--缪军--
2011-08-18
打赏
举报
回复
[Quote=引用 20 楼 theillusion 的回复:]
[/Quote]
你处理业务的时候,根本就不需要关心数据的东西
theillusion
2011-08-18
打赏
举报
回复
说个具体点的,比如下面的类,是否需要写持久化代码,对象间的关联如何处理?
Product
Order
OrderLine
Customer
--缪军--
2011-08-18
打赏
举报
回复
我想,我不要再次重复了,
业务逻辑和数据之间不存在映射关系,你非要让他们对应起来做什么?
theillusion
2011-08-18
打赏
举报
回复
楼上大哥,针对接口编程是好的,但是在实现他之前,程序不能运行。我的意思是在实现的时候,不存在阻抗失谐?
--缪军--
2011-08-18
打赏
举报
回复
你不能因为code中出现UserName,就认为和DB中的UserName存在映射关系,那只是巧合
事实上,一个业务对象很可能访问多个数据源,
而一个数据源也可能被多个业务对象访问,
很多设计体系中,类似仓位,牌价,账户余额,库存数量,实际上数据库中根本就没有哪个字段对应
--缪军--
2011-08-18
打赏
举报
回复
[Quote=引用 15 楼 theillusion 的回复:]
楼上大哥,他们两者之间没有依赖,这个是怎么做到的?阻抗失谐在你的项目里不存在?
[/Quote]
兄弟,我14楼已经说了:
[Quote=引用 14 楼 moneysoft 的回复:]
...
SOLID平时谁都会说,到实践当中就不知道用了,
Code和DB都依赖于设计文档接口,
[/Quote]
theillusion
2011-08-17
打赏
举报
回复
楼上大哥,他们两者之间没有依赖,这个是怎么做到的?阻抗失谐在你的项目里不存在?
--缪军--
2011-08-17
打赏
举报
回复
1.敏捷生产是对所有先进的生产手段的统称,并不特指某种技术,
2.微软的ADO本来就是数据对象的统一描述和通用的数据访问层,
它是数据特征无关的,项目无关的,
你还能找出哪一种编程模型更加符合面向对象设计的要求
3.之所以会有ORM或者NH之类的说法,
是因为有些人非要说:DB映射Code或者Code映射DB,
其实更好的设计方案是:他们两者之间没有依赖,
你可以编写Code而不需要知道什么数据库,
同时,做数据库开发的也不需要知道有什么代码约定,
SOLID平时谁都会说,到实践当中就不知道用了,
Code和DB都依赖于设计文档接口,
只有一个原因才导致Code或者DB的迭代,那就是设计文档接口的迭代
加载更多回复(13)
Entity
Framework
Core Cookbook - Second Edition 2016
Entity
Framework
Core Cookbook - Second Edition by Ricardo Peres English | 9 Nov. 2016 | ISBN: 1785883305 | 340 Pages | MOBI/EPUB/PDF+Code Files | 6.2 MB
Entity
Framework
is a highly recommended ...
Entity
.
Framework
.Core.Cookbook.2nd.Edition
Learn how to use the new features of
Entity
Framework
Core 1 Improve your queries by leveraging some of the advanced features Avoid common pitfalls Make the best of your .NET APIs by integrating with ...
Devart
Entity
Developer v6.0.67 Professional破解版
Entity
Developer是一个强大的ORM设计器,支持 ADO.NET
Entity
Framework
,
NHibernate
, LinqConnect 和 LINQ to SQL。你可以使用模型首先和数据首先的方法设计ORM模型并生成C#或者Visual Basic .NET代码。它引入了新...
Devart
Entity
Developer v6.4.719 Professional破解版,支持vs2019
支持
Entity
Framework
和EF Core 对于
Entity
Framework
v1-v6以及最新的EF Core2.2,我们的设计器提供了比EDM设计器更多的设计和代码生成功能。
Entity
框架核心 设计实体框架核心模型可视化。通过大量设置获得模型优先...
NHinbernate+LINQ+
Entity
Framework
课程设计 (毕设)(2)
NHinbernate+LINQ+
Entity
Framework
完成的课程设计平台,分为website和project两个部分,project主要是
nhibernate
,linq和ef在website的app_Code中。 数据库使用sql 2008 该部分是
nhibernate
.NET技术前瞻
13,347
社区成员
5,388
社区内容
发帖
与我相关
我的任务
.NET技术前瞻
.NET技术 .NET技术前瞻
复制链接
扫一扫
分享
社区描述
.NET技术 .NET技术前瞻
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章