Static methods, non static members - Data Access Layer/Business Layer
===

Ok, i am creating a web application. I am using MVC3. I have ViewModel for every view and also I have Data Model that supports viewModel and does the actuall CRUD operation in my sql table, while my viewModel validates and alters data as necessary.

Here is a question, the way I have been coding is

     public class MyClassViewModel
     {
         public string member1{get;set;}
         public int member2{get;set;}

          public static GetAllMembers(MyClass obj, out string strErrMsg)
          {
              // code goes here, read operation
          }

          public static UpdateMyClass(MyClass obj, out string strErrMsg)
          {
               // code goes here, write operation.
          }
     }

Both My ViewModel and DataModels have been coded this way, My Controller on  HttpPost just do something like this..

     MyClassViewModel.UpdateMember(obj,out strErrMsg)

Since its mvc on every post it creates on a strongly typed view a new object of my ViewModel, hence non static members are different and are not shared between sessions.

I am using Linq and therefore on each static method of my DataModel i use
 
      var db = new MyApplicationDataContext()
to get my linq classes and work on them. This solves my open/close reader problems.

My question is, are there any issues regarding concurrency with this design, I know I might have problems in changing my data layer if it is not designed via interface, but I highly doubt that is necessary based on my application.

Since the static methods uses different class 