В каких сценариях я хотел бы создать пользовательские бизнес-объекты из FINQ к результатам SQL?

StackOverflow https://stackoverflow.com/questions/3570084

Вопрос

Простой запрос LINQ для SQL может вернуть объект продукта. Образуется, я мог бы передать этот объект к моим бизнесу, а затем прочитать и обновлять данные, непосредственно против этого объекта.

Я видел кучу реализаций, в которых после выполнения запроса LINQ Результирующий объект отображается (через Automapper или вручную) на пользовательский бизнес-объект. Таким образом, в случае продукта, где у меня может быть объект LINQ:

Product.Productid и Product.ProductName.

И тогда я бы определил таможенный продукт бизнес-объект, как так:

class BusineszProduct
{
    string ProductId;
    string ProductName;
}

и какой-то простой сопоставленный код, как:

БизнесПродукты MyProduct = новый бизнесПродукт (); MyProduct.ProductiD = Product.ProductiD; MyProduct.ProductName = Product.ProductName;

И затем пропустите MyProduct вокруг моего бизнес-слоя, измените его, прочитайте его и так далее, затем позже обновите объект LINQ.

В каких сценариях я хотел бы создать пользовательский класс предпринимамости?

Это было полезно?

Решение

ИМХО, общая причина заключается в том, чтобы отделить / разоблачить ваши субъекты бизнеса из багажа Linq2SQL ORM, который поставляется с объектами Linq2SQL

Однако в экстремальном сценарии у вас могут быть несколько сопоставлений:

  • Линейные объекты Linq2SQL для слоя «Доступ к данным» - однако они тесно связаны с DataContext L2S
  • POCOS / Бизнес-объекты будут использованы для приложения бизнес-правила, валидации и т. Д.
  • Если вы используете веб-сервисы или WCF, вы также можете представить данные в качестве путей сообщения, например, если вам нужно представить объекты в очень специфическом формате, когда они сериализуются через провод
  • И, наконец, если у вас есть архитектура MVC / MVP / MVVM-пользовательского интерфейса, вы могли бы захотеть объекты, адаптированные для ваших представлений

Другие советы

В моем приложении я делаю запрос LINQ, который соединяет шесть разных таблиц и обеспечивает пару столбцов из каждого. Там нет конкретного типа объекта, который соответствует этому набору информации. Следовательно, я создаю пользовательский бизнес-класс для обработки набора записи.

Вы можете просмотреть его самостоятельно (в http://www.njtheater.org.)

Я выбираю из Productions Стол по дате. Он присоединяется к игровой таблице (где я получаю титул и описание), таблица труппы (где я получаю название компании театра), таблицу площадок (где я получаю название и город театра). Таблица Plays соединяется с таблицей PlayCredits, которая присоединяется к таблице людей (где я получаю имена PhayWrights)

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top