《Pro ASP.NET MVC 3 Framework》英文原版教材个人勘误

2011年6月27日,Apress今年比较吸引人的《Pro ASP.NET MVC 3 Framework》一书终于发布了。

http://www.apress.com/9781430234043

此书详细的为大家讲解了ASP.NET MVC 3的各个方面,并同时介绍并贯穿着Entity Framework 4.1、领域模型(Domain Model)设计、测试驱动开发(TDD)、基于Ninject的依赖注入、Moq模拟仓库等技术的运用,是一本不可多得的有关ASP.NET MVC 3的好书。

不得不说中文版的ASP.NET MVC系列教材太少了,MVC3的更是没有,所以读英文原版教材是最佳方案,这可以让你始终同技术发展保持同步,至少领先国内绝大多数人一步,而且还不会被中文翻译所误导。

不过在读此书的过程中,发现作者还是有许许多多错误的,一些很明显的错误我就不记录了,在此我将在读书的过程中记录一些初次接触新技术的人不太容易纠正的错误,分享给大家。

267页:Listing 9-13. Implementing the SaveProduct Method

复制代码
错误
 1 using System.Linq;
2 using SportsStore.Domain.Abstract;
3 using SportsStore.Domain.Entities;
4
5 namespace SportsStore.Domain.Concrete
6 {
7 public class EFProductRepository : IProductRepository
8 {
9 private EFDbContext context = new EFDbContext();
10
11 public IQueryable<Product> Products
12 {
13 get { return context.Products; }
14 }
15
16 public void SaveProduct(Product product)
17 {
18 if (product.ProductID == 0)
19 {
20 context.Products.Add(product);
21 }
22
23 context.SaveChanges();
24 }
25 }
26 }
复制代码

这里的问题是产品信息编辑调用的数据仓库保存方法无法正确保存修改后的数据,由于本人对EF4.1不熟悉所以在这里花费了半天时间找到了问题所在,就是少写了将传入参数保存进上下文的代码,需要注意的是必须先要引用System.Data.Entity程序集到SportsStore.Domain项目中。

复制代码
正确
 1 using System.Linq;
2 using SportsStore.Domain.Abstract;
3 using SportsStore.Domain.Entities;
4
5 namespace SportsStore.Domain.Concrete
6 {
7 public class EFProductRepository : IProductRepository
8 {
9 private EFDbContext context = new EFDbContext();
10
11 public IQueryable<Product> Products
12 {
13 get { return context.Products; }
14 }
15
16 public void SaveProduct(Product product)
17 {
18 if (product.ProductID == 0)
19 {
20 context.Products.Add(product);
21 }
22 else
23 {
24 context.Entry(product).State = System.Data.EntityState.Modified;
25 }
26
27 context.SaveChanges();
28 }
29 }
30 }
复制代码

  

posted @   胡皓  阅读(1180)  评论(6编辑  收藏  举报
编辑推荐:
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
阅读排行:
· 单线程的Redis速度为什么快?
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 展开说说关于C#中ORM框架的用法!
· SQL Server 2025 AI相关能力初探
· Pantheons:用 TypeScript 打造主流大模型对话的一站式集成库
点击右上角即可分享
微信分享提示