|
|
1
0
将下列项目添加到学习曲线中:
以上内容适用于您的问题,因为您的问题显然与控制器中的代码应该在您的模型中有关(即,数据访问代码应该在存储库类中)。也就是说,你不是在考虑MVC。 您的模型应该包括必要的存储库类,例如DealRepository。 您需要一个服务类来将存储库从数据库中挖掘的对象映射到模型类:这样转换问题就可以封装到服务层代码中。 如果这样做,则可以在控制器中写入:
其中DealService.GetByZipcode基本上只是将DealRepository.GetByZipcode(92612)映射到模型类并返回映射结果。 DealRepository.GetByZipcode方法大致如下:
DealEntity类就是Linq为您的表提供的任何内容。 这一切的原因是:这种结构的原因如下: 所有的数据访问代码都在一个地方:DealRepository。你可以独立测试和调试它。 映射代码都在一个地方:DealService。你可以独立测试和调试它。 换言之,你需要恰当地分离你的担忧。 您现有代码的问题正是您没有分离关注点。也就是说,你使用了一些MVC,把它放进了一个食品加工机,结果却遇到了很多问题,这些问题比你需要的要难得多。 您的模型混合到控制器中,没有存储库,没有服务层。 所以,先别急,花点时间读史蒂夫·桑德森的书。 我也会尝试建模一个更简单的问题。即使在好天气,xml解析也会让我头疼。 注:您可以认真改进命名约定。LinqTodersDataContext?你在开玩笑吧? |
|
|
2
2
您需要翻译此呼叫返回的数据:
变成一个
原因是您的视图是强类型的
|
|
|
3
1
您应该创建GetDealsModel类型的对象,但是DB查询返回Data.Models.spSearchDealsResult类型的对象。尝试以下方法:
return new GetDealsModel
{
DealId = deals.Id,
// other fields here
}
|