Model Binder可以进行存储库查找吗?

Cie*_*iel 6 asp.net-mvc modelbinders

我正在构建一个MVC应用程序,并正在为一个类设计一个自定义模型绑定器; 本质上,模型的一个字段是存在于数据库中的对象,但很难将其与HTML中的相应对象相关联.(因为选择列表只允许我选择一个int/string字段,我真的不能将'object'存储为Select List的'value').

我正在考虑使用存储在选择列表中的Id来查找我的Model Binder中的数据库中的对象 - 但是我的一位同事告诉我这通常是一个坏主意.这是真的,如果是的话,我还有其他选择吗?

Mic*_*uso 7

看起来像一个主观问题,但我认为在绑定器中调用存储库是可以接受的.我的备份是动作2中出色的书MVC.他们有一个关于模型粘合剂的简短部分.下面是引用,讨论在绑定器中调用数据库的想法(重点添加):

大多数情况下,此操作参数是对象的主键或另一个唯一标识符,因此我们可以使用可在操作之前加载存储对象的自定义模型绑定器,而不是在所有操作中放置此重复数据访问代码.被执行.然后,我们的操作可以将持久化对象类型作为参数而不是唯一标识符.

如果您认为模型绑定器的整个点将视图映射到底层域模型,那么这是有意义的.他们的示例代码也演示了绑定器中的存储库调用.