Комментарии 14
Велосипед какой-то… Может лучше linq?
var db = new DatabaseContext();
var results = from product in products where is_visible = 1 select product;
// do something?
var db = new DatabaseContext();
var results = from product in products where is_visible = 1 select product;
// do something?
+1
К сожалению, с linq я ещё плохо знаком, поэтому мне не совсем понятно, что такое DatabaseContext.
0
Ознакомсья, сократишь кол-во строк с 90 до 5ти.
А вообще, даже если бы ты использовал Typed DataSet, у тебя и с ним было бы не больше 5ти строк. Посмотри на инструменты вокруг — уже давно всё есть для работы с бд. И заново писать один из них не имеет смысла. Это одна из проблем начинающих — начинают изобретать велосипеды. Если работаешь, судя по всему, уже 10 месяцев программистом — пора бы уже понять :)
Краткий экскурс в linq: www.gotdotnet.ru/LearnDotNet/DotNet30/441508.aspx
Как только вникнешь — гугли LINQ to SQL :)
А вообще, даже если бы ты использовал Typed DataSet, у тебя и с ним было бы не больше 5ти строк. Посмотри на инструменты вокруг — уже давно всё есть для работы с бд. И заново писать один из них не имеет смысла. Это одна из проблем начинающих — начинают изобретать велосипеды. Если работаешь, судя по всему, уже 10 месяцев программистом — пора бы уже понять :)
Краткий экскурс в linq: www.gotdotnet.ru/LearnDotNet/DotNet30/441508.aspx
Как только вникнешь — гугли LINQ to SQL :)
+1
До последнего момента приходилось иметь дело исключительно с .net 2.0. Именно поэтому мне и было интересно мнение более опытных людей.
0
Для начала я бы отказался от типизированного приватного конструктора.
Далее написал бы класс для доступа к базе (аля слой data access). У класса есть метод: GetProducts(), который делает запрос в базу данных, получает результат и возвращает его в виде коллекции сущностей. Всё просто и понятно и легко тестируемо. Далее под ваши нужды уже совершенствование.
Далее написал бы класс для доступа к базе (аля слой data access). У класса есть метод: GetProducts(), который делает запрос в базу данных, получает результат и возвращает его в виде коллекции сущностей. Всё просто и понятно и легко тестируемо. Далее под ваши нужды уже совершенствование.
+1
Я уже говорил чуть выше про typed dataset :) Он ещё с 1.x версий существует :)
+1
Почитайте книжку — Мартин Фаулер «Архитектура корпоративных программных приложений».
0
я бы прикрутил ADO.NET Entity Framework.
Оно само по табличке и классы сгенерит, и запись-чтение сделает, и интерфейс удобный предоставит. Чтобы дальше приходилось только писать что-то вроде
Довольно любопытная штука, правда со своими выкрутасами.
Оно само по табличке и классы сгенерит, и запись-чтение сделает, и интерфейс удобный предоставит. Чтобы дальше приходилось только писать что-то вроде
context.ProductSet.Where("is_visible").Select(reader => new
{
ID = (int) reader[0],
Name = (string) reader[1]
}).ToList();
Довольно любопытная штука, правда со своими выкрутасами.
+1
Срочно читать про ORM, Linq To SQL и EntityFramework, ибо вы сейчас такие велосипеды наизобретаете…
0
Как уже написали лучше использовать готовый ORM (не обязательно Linq2Sql или EF). Вы потратите на изучение меньше времени, чем не генерацию своего, получите знания для других проектов и вам не нужно будет поддерживать лишний самописный код. К тому же, EF к примеру через провайдеры способен работать с десятком баз данных. Ваш код, похоже, ориентирован только на MS SQL Server.
К тому же, подумайте о потомках! Тянуть весь ваш самописный ORM будет очень тяжело любому другому программисту, который, я уверен, первым же делом решит переводить проект на рельсы другого общедоступного ORM.
К тому же, подумайте о потомках! Тянуть весь ваш самописный ORM будет очень тяжело любому другому программисту, который, я уверен, первым же делом решит переводить проект на рельсы другого общедоступного ORM.
+1
Что вы все заладили, смотри ОРМ, смотри ОРМ. ОРМ это не панацея. Буксовать будет вся ОРМ в большем проекте. Гибкости там мало. А если поменяется схема ДБ то вообще не приятно становится.
+1
НЛО прилетело и опубликовало эту надпись здесь
Зарегистрируйтесь на Хабре, чтобы оставить комментарий
Публикации
Изменить настройки темы
А Вы как представляете себе Product?