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