Какая наилучшая практика в плане настройки моего DataContext для легкого доступа в моих расширенных классах LinqToSql?
Например, у меня есть объект "Пользователь" в моем dbml, и я хочу добавить методы к этому классу следующим образом:
Partial Public Class User
    Public Function GetUser(ByVal UserID as Integer) as User
         'Do Work
    End Function
End Class
Чтобы получить доступ к моему DataContext, я должен был бы объявить его внутри метода следующим образом:
Partial Public Class User
    Public Function GetUser(ByVal UserID as Integer) as User
         Dim dc as New MyDataContext()
         Return (From u in dc.Users Where u.ID = UserID).Single()
    End Function
End Class
Я бы не хотел этого делать для каждого метода. Обычно (если я не расширил классы dbml LinqToSql), я мог бы просто сделать это:
Partial Public Class User
    Private dc as MyDataContext
    Public Sub New()
         dc = new MyDataContext()
    End Sub
    Public Function GetUser(ByVal UserID as Integer) as User
         Return (From u in dc.Users Where u.ID = UserID).Single()
    End Function
    Public Function GetAllUsers() as IEnumerable(Of User)
         Return From u in dc.Users
    End Function
    'etc...
End Class
Это позволит мне получить доступ к datacontext для каждого метода без необходимости объявлять его каждый раз. Но, конечно, вы не можете этого сделать, потому что у dbml уже есть конструктор. И добавление кода в dbml всегда перезаписывается, если что-либо изменится.
У кого-нибудь есть хорошие идеи о том, как сохранить здесь лишний код?
ТИА!