开发者

MVC + Repository Pattern - Still depends on Data Model?

I've started a project for school in which I am using ASP.NET MVC 2 + LINQ2SQL, and a business layer so my UI doesnt interact with the DB directly. My question is this:

In my MVC project, when bringing up views and passing around data, I still have to include my Data project for access to the classes in my Linq2Sql project. Is this correct?

Example:

Controller:

ClassesRepository cr = new ClassesRepository(); // this is from my Business project
Class classToEdit = cr.GetByClassId(id); // "Class" is from my data project

I still have to reference the Class class in my linq2sql data project - shouldn't my UI be completely independent of my data layer? Or mayb开发者_开发知识库e I'm going about this all wrong.


I prefer to have my Repository do the mapping internally to my own classes. So what I return from my repository is not the LinqToSql classes but my own. I then map the returned classes data into a model for each views.

So it looks like:

LinqToSQL class -> MyClass (output from Repository at this point) -> (controller maps to model for a specific view) MyModel.

Make sure to always make a model for each view. You can just use what your repository returns but that is a short cut and mapping it to their own view models will pay off in the future.


Take a look at the Golf Tracker Series at MVC Central, it does what you want and what Kelsey is describing.

http://www.mvccentral.net

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜