Какая наилучшая практика в плане настройки моего 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 всегда перезаписывается, если что-либо изменится.
У кого-нибудь есть хорошие идеи о том, как сохранить здесь лишний код?
ТИА!