我正在创建一个 ASP .Net 网站,并想为我的数据层使用 Linq to SQL 类,然后有另一个项目可以为数据层提供服务。我对 Linq to SQL 相当陌生。
我拥有的结构是一个接口,它在单独的接口中列出了数据库中每个表所需的所有 CRUD(创建、读取、更新和删除)操作。
然后我有另一个实现接口的类,如果我编写所有代码来获取、更新、删除数据等,即
Public Function GetCustomers As Iqueryable(of Customer)
Dim Service as New StoreDataContext
Return From c in Service.Customers select c
End Function
我注意到我总是在我的所有方法中编写 Dim Service As New StoreDataContext 以便对我的数据做任何事情。
这让我开始思考并在每个类中创建一个属性,该属性使用数据上下文初始化该属性。为了更好地迈出一步,我想创建一个 MustInherit 类,这样所有类都将继承这个类,并且需要进行的任何更改都可以在一个阶段完成,而不是进入所有类
Public MustInherit Class MyService
Public ReadOnly Property CurrentDataContext As StoreDataContext
Get
Return New StoreDataContext
End Get
End Property
End Class
我的客户类看起来像
Public Class CustomerSer
Inherits MyService
Implements ICustomer
Public Function GetCustomers As Iqueryable(of Customer)
Return From c in CurrentDataContext.Customers select c
End Function
正如您所知道的,上面的函数正在使用从创建的类继承的 CurrentDataContext。
问题:
- 这样可以吗,还是这个设计会有一些缺陷?
- 我需要在任何阶段或课堂上关闭此服务吗?
谢谢