Являются ли LINQ сгенерированные классы POCO? - PullRequest
1 голос
/ 11 февраля 2009

Считаются ли классы, сгенерированные LINQ (DBML), POCO? Если я добавлю статические запросы к этим классам, они все еще будут POCO?

Я предполагаю, что это изменится, как только я начну заниматься бизнесом в части LINQ. Например, добавление других атрибутов, создание коллекций и в основном создание партиалов, отличных от классов DAL.

Если классы LINQ являются POCO, то какой еще пример?

Ответы [ 3 ]

0 голосов
/ 11 февраля 2009

Ну, по крайней мере, они не наследуют какой-либо специальный базовый класс. И большую часть кода вы можете просто удалить - LINQ-to-SQL не нуждается в этом. Но учтите, что при этом вы потеряете множество улучшений, таких как более эффективное отслеживание изменений (события без изменения свойств) и отложенная загрузка для отношений.

Что еще важнее, кого это волнует, если кто-то считает их POCO, если они работают на то, что вам нужно? Если вы добавляете свое собственное поведение к объекту данных ... для этого нужны объекты. POCO не означает никакого поведения, это просто означает, что объекты не слишком «странные» или с большим количеством специфического для платформы кода (например, необходим специальный базовый класс, специальные интерфейсы и т. Д.)

0 голосов
/ 11 февраля 2009

Короткий ответ - нет. Классы, сгенерированные LINQ to SQL, содержат логику сохранения базы данных, которая требуется LINQ to SQL для правильной работы. POCO, по определению , не имеют такого кода.

0 голосов
/ 11 февраля 2009

Я бы сказал , а не . В сгенерированном конструктором Linq to SQL приличном объеме интеллекта есть.

...