Я ищу хорошее руководство по правильному методу использования Linq to Sql вместе с WPF.
В большинстве руководств рассматриваются только базовые основы, например, как показывать данные из базы данных, но я не нашел ни одного, который мог бы вернуться к этой базе данных. Можете ли вы ответить или указать мне руководство, которое может ответить на эти вопросы.
У меня есть отдельный проект Data, потому что те же данные также будут использоваться на веб-странице, поэтому у меня есть метод репозитория. Это означает, что у меня есть отдельный класс, который использует DataContext, и есть такие методы, как GetAllCompanies () и GetCompanyById (int id).
1) Где есть коллекции, лучше ли возвращать как IQueryable, или я должен вернуть список?
В проекте WPF я видел рекомендации обернуть коллекцию в коллекцию ObservabgleCollection.
2) Почему я должен использовать ObservableCollection и должен ли я использовать его даже с Linq / IQueryable
Некоторые свойства объектов linq должны быть доступны для редактирования в приложении, поэтому я установил их в двусторонний режим. Это изменит объект в observableCollection.
3) Является ли объект в ObservableCollection все еще экземпляром исходной сущности linq, и поэтому изменение отражается в базе данных (когда вызывается submitchanges)
У меня должен быть какой-то метод сохранения в репозитории. Но когда мне это назвать? Что произойдет, если кто-то отредактирует поле, но решит не сохранять его, перейдет к другому объекту и отредактирует его, а затем нажмите «Сохранить». Не сохраняется ли оригинальное изменение? Когда он не запоминает изменения объекта сущности linq. Должен ли я создавать экземпляр класса Datacontext в каждом методе, чтобы он терял область видимости после завершения.
4) Когда и как вызывать метод SubmitChanges
5) Должен ли я иметь DataContext в качестве переменной-члена класса репозитория или переменной метода
Чтобы добавить новую строку, я должен создать новый объект в событии («новое» нажатие кнопки), а затем добавить его в базу данных, используя метод репо.
6) Когда я добавлю объект в базу данных, в ObservableCollection не будет нового объекта. Обновляю ли я как-нибудь.
7) Я не хочу повторно использовать окно редактирования при создании нового, но не уверен, как динамически перейти от ссылки на выбранный элемент из списка к этому новому объекту. Любые примеры, которые вы можете указать.