- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
EF 已经推出有一段时间了,我正在考虑对其进行评估 - 您的体验如何?
我对 Web 和桌面应用程序都感兴趣,也许还对 EF 和您使用过的其他 ORM 工具之间的一些比较感兴趣。
学习曲线是一个因素,因为有一个团队参与其中。这东西是臃肿困惑,还是精干锐利?
我听说 Microsoft 正在内部大规模使用此功能,所以这是一个好兆头。如果您对它如何适应微软目前似乎正在花钱的基于云的 future 有任何想法,那可能也会很有趣。毕竟,如果这是我们最终都需要知道的事情,那么优先级就会提高一两个等级。
非常感谢!
最佳答案
嗯,我刚刚在 EF 中实现了一个完整的系统,这是我第一次在生产环境中真正体验 EF。该应用现已运行约 45 天,每天都有 100 名用户使用它,没有出现任何问题。
我认为最重要的是你必须改变你的想法。如果您像关系数据库 ORM 一样思考,那么您的思维方式就已经错误了。您需要考虑部分方法、对象和扩展。一旦你掌握了基本的思维方式,事情就开始顺利进行(并且你从一开始就重写了很多代码)。
获得帮助很困难
EF 的另一个令人沮丧的部分是,无论你去哪里寻求帮助,都充满了 L2S 大佬,他们认为他们已经知道你需要做的一切,并一直试图告诉你放弃它,只使用 L2S...如果我愿意的话已询问如何在 L2S 中做到这一点,那么也许他们的意见是有效的......
EF 运行良好
生成对象的基本能力,然后可以通过部分方法进行扩展,效果很好。实际上,我在早期阶段非常沮丧,因为我一直试图按照 SQLCommand 中的方式获取内容。一旦您意识到可以根据业务逻辑需求而不是 SQL 工作方式来思考,您就可以完成更多工作。
例如 - 我一直尝试进行连接以获得与特定 FK 相关的各种任务的列表。当我最终发现我可以将整个 where 子句交给 EF 并让我弄清楚如何快速将数据返回给我时,代码实际上要快得多。
包括恶臭
但 Include 语法对我来说感觉就像是黑客。必须使用 .Include("TableName.DetailTable") 是丑陋的。也许我只是被智能感知宠坏了,但我讨厌这种语法。
按需加载
主细节负载也有点难看。如果您不想包含它们,您可以随时获取它们的引用并查看它是否为 .IsLoaded,然后调用 .Load。为什么?对象不能为我做这件事吗?我最终在我的对象上实现了一个扩展方法,如果我尝试加载未加载的详细类,它将根据需要加载它。看来这应该是我的本能。
注意:上一篇文章中提到的过滤记录集的详细负载并不复杂,但也不明显。您可以使用 Lambda 表达式进行过滤。
您想移动该项目吗?
这里有一个重要的原因:非供应商锁定。如果您想将该代码转移到另一个数据库,则无法使用 Linq2SQL 来实现。没有提供者模型。您可能有机会将 EF 系统转移到其他供应商。就我而言,同一项目在 SQL Server 和 VistaDB EF (Alpha) 上运行,无需更改代码。因此我可以通过 xcopy 部署它,或者在运行时连接到我选择的服务器。
关于.net - 您使用 Entity Framework 的经历如何?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/328938/
我正在使用 libapr,但它们的一些基本原语似乎不能很好地工作,呈现出非常奇怪的行为。这是我正在编写的代码: pr_pool_t *mp=NULL; apr_file_t *fp =
我多年来一直在寻找这个问题的答案,但在任何地方都找不到。真心希望有人能帮忙 我的结构: WebContent - resources - css - style.css
功能: 我正在尝试创建一个有 5 次尝试的测验,其中每个问题页面都是从每个类别中显示的随机问题。 因此,如果用户答对了每个问题,下一个问题将淡入,如果用户在 5 次尝试中有 3 次答对了 3 个问题,
我是一名优秀的程序员,十分优秀!