asp.net mvc 2 简简单单做开发 实现基本数据操作操作RepositoryController<T>

asp.net mvc 2 使用Linq to Sql 来操作数据库,基本实现面向对象编程,同样在操作数据是我们也可以使用面向对象的继承再加上泛型,是操作更加简单。代码简单,不详细说明,里面用到几个简单的扩展方法,以后会详细介绍。如db.find<T>(t),db.findkey<T>(id)。这是对dbcontent做了些扩展。

RepositoryController.cs 代码如下:

 

 1 public class RepositoryController<T>: BaseController where T : class,new()
 2     {
 3         private Table<T> list()
 4         {
 5            return db.GetTable<T>();
 6         }
 7 
 8       
 9         public string orderby = "Id desc";
10         public virtual  ActionResult Index(T art)
11         {
12             ViewData["searchModel"= art;
13             var Model = db.Find<T>(art);
14             RecordCount = Model.Count();
15            Model=Model.OrderBy(orderby);
16            
17          Model = Model.Skip((CurPage - 1* PageSize).Take(PageSize);
18           
19             GetPager();
20             return View("index", Model);
21         }
22          [ValidateInput(false)]
23         public virtual ActionResult Add()
24         {
25             
26             return View(new T());
27         }
28         [HttpPost]
29         [ValidateInput(false)]
30         public virtual ActionResult Add(T Model)
31         {
32             if (ModelState.IsValid)
33             {
34                 try
35                 {
36                    list().InsertOnSubmit(Model);
37                     db.SubmitChanges();
38                     return RedirectToAction("index");
39                 }
40                 catch
41                 {
42                     return View(Model);
43                 }
44             }
45             else
46                 return View(Model);
47         }
48          [ValidateInput(false)]
49         public virtual ActionResult Edit(int id)
50         {
51             return View(db.FindKey<T>(id));
52         }
53         [HttpPost]
54         [ValidateInput(false)]
55         public virtual ActionResult Edit(int id, T Model)
56         {
57             try
58             {
59                 var cate = db.FindKey<T>(id);
60                 UpdateModel(cate);
61                 db.SubmitChanges();
62                 return RedirectToAction("index");
63             }
64             catch
65             {
66                 return View(Model);
67             }
68         }
69         public virtual ActionResult Delete(int id)
70         {
71             list().DeleteOnSubmit(db.FindKey<T>(id));
72             db.SubmitChanges();
73             return RedirectToAction("index");
74         }
75 
76 
77     }

 

 

posted @ 2010-07-05 15:08  王继坤  阅读(1286)  评论(2编辑  收藏  举报
我要啦免费统计