在我的扩展LinqToSql类中,如何设置我的DataContext以便轻松访问是最佳实践?
例如,我在dbml中有一个“User”实体,并且我想像这样为该类添加方法:
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
我不想每个方法都这样做。通常情况下(如果我没有扩展 LinqToSql dbml 类),我可以这样做:
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中添加代码总是会被覆盖掉。有没有人有什么好主意可以帮我减少一些多余的代码?
谢谢!