我在我的应用程序中有一个非常简单的存储库模式,但是现在我有一个异议,我需要返回Code First Model和一些额外的数据。见下文。实体框架何时创建自定义DTO?
public IEnumerable<User> GetUsersWithinLocation(DbGeography geography)
我真想包括在返回的模式是用户实例,从地理的距离(以英里或其他)。
下面是我看到的选项:
选项1:我可以返回User对象名单,没有距离,重新计算第二次的前端,并避免塞满了我的数据模型,但似乎有点多余..并且,这可能在某些情况下是不可能的,我只是觉得这种方法是错误的。
选项2:另一种选择是创建一个新的DTO,该DTO由用户构成或继承,例如UserDistance对象。这会给我所需的一切,但是我会为此创建一个新的存储库吗?如果每种模型类型返回的数据有很多变化,我可以认为这在大型应用程序中保持不稳定。
选项3:实现某种动态的ExtraData ViewBag排序图层,我可以随意传递额外的数据以及DTO。这会在我的图层之间产生更紧密的耦合,因为名称必须是已知的。我也不太喜欢这种方法。
任何指导极大的赞赏。
我会用'User'和距离创建'Model',类似于** Option 2 **,但不创建存储库,至少您需要存储此信息。如果只是在某个时刻使用它,那么你可以按照我刚才所说的去做。希望我的意见能帮助你做出决定祝你好运!!! – ecampver 2013-03-10 06:13:19
查看下面的答案...我基本上使用3的灵活性,强类型2,而不需要创建额外的对象。让我知道如果你喜欢它(: – rodmjay 2013-03-10 07:09:00
检查我的答案下面,我认为这就是你想要的:P – ecampver 2013-03-10 21:54:09