1

I am using DataClassesDataContext to map all the tables from the db into my asp.net application.

For doing CRUD operations i have made static classes with methods, and inside every method a instantiate DataClassesDataContext.

For instance:

public static class UserQ { public static User getUserById(int userId) { DataClassesDataContext db = new DataClassesDataContext(); var requestedUser = (from u in db.Users where u.User_id == userId select u).First(); if (requestedUser != null) return (User)requestedUser; else return null; } } 

I aam not sure if this way of doing database operations in a web application is safe? If not, can you suggest please a better pattern?

3 Answers 3

2

As DataClassesDataContext implements IDisposable, you should be wrapping it with a using directive:

using (DataClassesDataContext db = new DataClassesDataContext()) { ... } 
Sign up to request clarification or add additional context in comments.

Comments

1

I would suggest taking a look at the Repository Pattern:

  1. Example 1
  2. Example 2 (Scott Gu's first chapter from Nerd Dinner - its for MVC but the Repository pattern illustrated works w/o MVC)

2 Comments

I agree. It really will simplify things and in the case of LINQ to SQL it will increase your performance greatly if you rely on IQueryable. Take a look here stackoverflow.com/questions/1223194/…
Thanks. Haven't heard about Repository Pattern before. After rading the articles i can say: Great!
1

I would be very very careful about using STATIC in web applications. Sometimes the bugs are so subtle that you will spend a lot of time debugging.

I think bnkdev & Oded hit the nail on the head: look at repository pattern & wrap your context call in a using statement...

HTH.

Comments

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.