日期:2014-05-16  浏览次数:20506 次

EntityFramework真的合适企业级开发吗。。???学了EntityFramework一个星期。。听大家性能还可以接受。。所以使用了。。。
如题。。。EntityFramework学了一个星期,。听大家说EntityFramework合适企业级开发。。

别不说性能。。我进行了测试,(I5双核,8G内存)20W条,ADO.NET平均需要两分钟EntityFramework平均需要5分钟

但是。。这个性能。。还可以接受吧。。

令人迷惑的是,比如批理删除,批量更新,什么的。。现在也扩展可以实现。。这个也过得去吧。。

我使用的是code first 根据MODEL生成数据库,比如今天想使用唯一约束,我在MODEL内面,查了资料
不知道,怎么使用唯一约束。。。


听说EntityFramework6.1可以使用唯一约束,还有其它多修复BUG,全是最新的版本,全是英文,看得吃力啊。。
其它唯一约束很简单的功能,都是必需的,现在才实现。。EntityFramework真的符合企业级开发吗。。
------解决方案--------------------
看下这篇文章 可能对LZ有帮助
http://www.dotblogs.com.tw/maev85/archive/2011/04/14/22667.aspx

------解决方案--------------------
高层视图:
改变在现有系统使用EntityFramework并使其正常工作最好的理由是什么?

? All -in-1框架的类映射表,需要编写映射代码, 并且是很难维护的。 
? 可维护性,易于理解的代码,无需创造大的数据访问层。 
? 提供LINQ查询数据库,这需要从初级开发人员不太了解SQL。 
? EF可以用作用于数据服务和OData Service的基础设施。
什么的情况下,不建议使用EF呢:

? 实时的应用程序。 
? 只能通过存储过程访问数据库。 EF的优势是:跟踪实体状态Change时,不仅仅在存储过程上.(即使EF确实对存储过程支持有限的)。 
? 频繁插入操作(Insert),  并且EF不支持大数据Bulk 插入。 
? 频繁更新操作,更新的目标主要是当多行(用一个单值) 
   例如:UPDATE 表名 SET ColumA = 10 Where ColumnB =? 
   这种更新操作更好的使用的ExecuteNonQuery(也可从Context上下文或直接从Ado.Net)。 
? 反范式的表设计和高性能查询。 EF产生查询,他们是难以维护的,它并不能很好地支持映射到不规范的表。
? 对程序有非常的性能要求, 需要对每个查询进行监控.
------解决方案--------------------
EF 创建唯一约束:

CreateIndex(table: "Organisations", 
            column: "Name", 
            unique: true, // unique index
            name: "MyIndex");


http://stackoverflow.com/questions/13070431/unique-constraint-with-entity-framework-using-code-first-migrations