首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >最佳实践是什么,实体框架模型还是MVC模型?

最佳实践是什么,实体框架模型还是MVC模型?
EN

Stack Overflow用户
提问于 2013-03-13 00:12:23
回答 2查看 3.4K关注 0票数 1

在使用代码优先的实体框架时,调用数据库数据的最佳实践是什么?

这是我第一次在MVC中使用实体框架,并注意到它会自动在我的DataLayer中构建模型。我在MVC UI中也有一些基本模型,它们允许我在视图中操作和显示数据。目前,我使用工作流层获取数据,然后将数据库模型AutoMap到我的UI模型以显示数据。

这是最佳实践吗?我应该使用实体框架模型而不是我的UI模型吗?或者干净利落地做这件事?

任何有关此事的信息都将不胜感激。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-03-13 01:04:26

EF创建的POCOs应该用作您的模型。一般的想法是让EF提供对数据库的访问。您可以使用LINQ和/或扩展方法查询EF,并通过在WPF中绑定对象或对象集合来在UI上显示这些对象或集合。当然,如果您使用的是WPF,而不是较旧的WinForms。我可以根据经验告诉你,一旦你熟悉了这些技术,这是一个非常流线型的过程。这是一个非常基本的设置是如何工作的。

一种更高级的方法是将模型-视图-视图模型( Model-View-ViewModel,MVVM)等体系结构和可能的存储库模式添加到混合模式中,在这一点上,您可以更好地分离代码和表示,但代价是复杂性增加。

我不知道您使用的是哪种风格的MVC,也不知道如何将它与上面提到的混合在一起,但是如果您想了解更多关于EF是如何工作的,您应该研究一下我上面列出的技术。

票数 2
EN

Stack Overflow用户

发布于 2013-03-14 12:53:23

这真的由你来决定。如果您也想在视图模型中重用相同的EF实体,请继续。就我个人而言,我不喜欢。这是因为您通常会向类中添加一组与数据中存储的内容无关的属性,是的,我知道您可以这样使用NotMapped属性:

代码语言:javascript
运行
复制
[NotMapped]
public string MyExtraProperty { get; set; }

但我不喜欢。此外,您最终会将[Display]和其他属性添加到您的属性中,不知不觉中,您就已经得到了数据特定的属性和UI特定的属性的装饰,如果您不小心,它可能会变得混乱。

因此,对我来说,我有以下几点:

  1. 域实体
  2. 视图Model
  3. Service/Facade/Repository

控制器调用存储库来获取域实体,并将其转换为视图模型以进行显示。

我发现这是一种更干净的方法,但也许这就是我。最重要的是,为了代码的一致性和清晰度,只选择一种方法并坚持使用它,但任何一种方法都是可以接受的。“让你的船浮起来的东西”就像他们说的那样...

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15366373

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档