我们的 MVC3 路由引擎有几个条目,它们有一个约束,涉及数据库查找来评估。例如:
routes.MapRoute(
"Product",
"{manufacturer}/{partNumber}",
new { controller = "Product", action = "Details", manufacturer = "" },
new { manufacturer = new ManufacturerConstraint() }
);
routes.MapRoute(
"Store",
"{store}/{action}",
new { controller = "Store", action = "Index" },
new { store = new StoreConstraint() }
);
whereManufacturererConstraint()
涉及数据库查找,StoreConstraint()
但不涉及。
我们RouteUrl
用于生成类似于以下内容的链接:
RouteUrl("Product", new { manufacturer = product.Brand, partNumber = product.PartNumber });
三个问题由此而来:
- 我们的使用会导致数据库查找吗?
- 如果我为“Store”路由生成了一个路由,它是否还会在针对所有路由对其进行测试时生成一个查找?还是只对指定路线进行一次测试?
- 如果它在这种用法中确实命中了数据库,有没有办法使用
RouteUrl
它?