MVVM с LinqToSQL - PullRequest
       14

MVVM с LinqToSQL

2 голосов
/ 28 сентября 2010

есть небольшой вопрос BrainF *** для меня, чтобы понять MVVM по отношению к LinqToSQL.

MVVM построен как:

Вид -> Модель представления -> Модель

Вид: xaml и cs код файла. право ?

Viewmodel: созданная разработчиком (* .cs), инкапсулированные свойства моей модели

Модель: Datamodel

Итак, вот вопрос:

LinqToSql дает мне файл dbml, который содержит все данные из моей базы данных, так что я могу использовать это как модель?

Где и как я должен реализовывать Команды в этой архитектуре?

Где методы для получения данных из базы данных и заполнения модели или модели? :-) как getCustomer ()

Ответы [ 2 ]

12 голосов
/ 28 сентября 2010

Вы задаете здесь несколько вопросов, но давайте разберемся с ними по одному:

Просмотр: код xaml и cs, стоящий за файлом.да?

Да.Или, вообще, вся логика, которая касается только представления данных .Примеры:

  • Учитывая список вещей, это зависит от слоя View, чтобы решить, будут ли они отображены в выпадающем списке или маркированном списке.
  • Решение о том, будут ли сотрудники, являющиеся руководителями, окрашены в синий цвет, зависит от представления.Но это не , чтобы решить, является ли Сотрудник Менеджером.

LinqToSql дает мне файл dbml, который содержит все Данные из моей Базы данных,так я могу использовать это как модель?

Да, вы можете.Классы LINQ-to-SQL, созданные под файлом DBML, представляют вам объектную модель, построенную из вашей схемы базы данных.Вы можете расширить эти объекты (с помощью частичных классов или создав другие классы, состоящие из них), чтобы добавить проверку и другую бизнес-логику. Скотт Гатри дает нам низкий уровень.

Это классы, которые ваши ViewModels обычно инкапсулируют, добавляя и выставляя свойства, относящиеся к представлениям, которые отображают данные.

Где и как я должен реализовать Команды в этой архитектуре?

Команды - это слабосвязанное средство связи между вашим пользовательским интерфейсом и обработкой событийлогика.Таким образом, ваши ViewModels будут выставлять команды для представлений.Вы указываете, какую команду должно генерировать данное событие для данного элемента управления (например, Button.Click), а связанный ViewModel обрабатывает остальное.

Где находятся методы для получения данных из базы данных и заполнениямодель или модель?:-) like getCustomer ()

Это то, для чего предназначен шаблон Repository.Вкратце: вы создаете класс репозитория, который использует DataContext, указанный в вашем файле DBML, для отправки запросов LINQ в базу данных и возврата объектов модели.Ваши ViewModels могут использовать экземпляры вашего класса Repository для извлечения Моделей, которые они, в свою очередь, представят вашим Представлениям.

Обратите внимание, что я только обрисовал несколько основных принципов, и это, конечно, не единственный способиспользуйте широкие шаблоны, которые вы упомянули. Джош Смит написал тонны замечательных материалов по этим понятиям. Приложения WPF с шаблоном проектирования Model-View-ViewModel было бы неплохо для начала!

1 голос
/ 28 сентября 2010

В основном, ваши репозитории действуют как ваш источник данных, и именно здесь вы пишете свои методы, такие как:

public class CustomerRepository{
    private MyDataContext db = new MyDataContext();
    public Customer Find(id)
    {
      //Linq queries or Lambdas
    }

    public Customer Add(Customer _custoemr){}

    public void save(){}

    public IEnumerable<Customer> FindAll(){}
}

в этом вопросе вы можете найти несколько полезных ссылок, которые могут помочь вам понять шаблон хранилища.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...