Я создаю веб-сайт ASP .NET и хотел бы использовать Linq для SQL-класса для моего datalayer, а затем создать другой проект, который будет обслуживать datalayer. Im довольно новый с Linq to SQL.Linq to SQL Использование DataContext
У меня есть интерфейс, в котором перечислены все операции CRUD (Create, Read, Update and Delete), которые мне нужны для каждой таблицы в базе данных в отдельном интерфейсе.
то у меня есть еще один класс, который реализует интерфейс был я писать все мой код, чтобы получить, обновление, удаление данных и т.д. т.е.
Public Function GetCustomers As Iqueryable(of Customer)
Dim Service as New StoreDataContext
Return From c in Service.Customers select c
End Function
Что я заметил, был я всегда писал дим Service As New StoreDataContext всего мои методы, чтобы сделать что-либо с моими данными.
Это привело меня к мысли и созданию свойства в каждом классе, который инициализирует свойство с помощью datacontext. Для того, чтобы сделать еще один шаг лучше я думал создать класс 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, который наследуется от класса, созданного.
Вопросы:
- Это нормально или будет ли какой-то недостаток в этой конструкции?
- Мне нужно закрыть эту службу на любом этапе или в моем классе?
Благодаря
Спасибо, я посмотрю ссылки, размещенные сейчас. Просто так я правильно понял вас, вы говорите, что у меня есть хорошо, и продолжайте с того, что предложили я или вы говорите, что дизайн, который я предложил, хорош, но мне нужны дополнительные плиты котла для вставки и т. Д. В созданном мной классе? Большое спасибо – Computer
Продолжайте работать с тем, что у вас есть, Dim в новом DataStoreContext в начале каждой функции. Это не проблема, когда вы читаете (выбираете), но когда вы входите в обновление объектов, вам нужен приятный процесс: новый контекст, объекты обновления, отправьте все изменения. –
Простите еще одну мысль. Мое свойство создает экземпляр New - не означает ли это, что каждый раз, когда я вызываю этот метод, он будет создавать экземпляр New для каждого метода? Поэтому каждый раз он имеет новый контекст? Спасибо – Computer