2010-07-20 2 views
0

В настоящее время я работаю над локальным приложением, имеющим доступ к SQL Server 2008 Express. То, что я сделал, это создать класс, который управляет всеми правами доступа и действиями по базе данных (например, INSERT, DELETE и т. Д.), Но класс становится действительно большим и имеет не менее 40 методов. Поэтому мой вопрос: есть ли способ реорганизовать этот класс? или это нормально, чтобы быть таким?Refactor a C# Class

+0

http://www.nhforge.org/ – griZZZly8

ответ

3

Вы можете попробовать этот ORM библиотеку для .NET:

  • BLToolkit -> это довольно простая библиотека, чтобы начать играть с ОРМ, очень легко начать с
  • Linq2SQL -> Этого libary мертвым проект, Microsoft перестала его развивать, и я думаю, что не рекомендуется использовать «мертвую» технологию
  • Entity Framework -> хороший момент для начала, имеет и легкий мастер для создания исходной модели с необходимыми сопоставлениями таблиц (просто установите его и создать «Новый проект объекта», мастер поможет вам создать ваши первые сопоставления)
  • NHibernate -> его в некий «монстр» отображение ORM библиотеки, немного сложнее, но один из самых современных библиотек на рынке .NET ORM
10

Да, это называется слоем Object-Relational-Mapping или ORM для краткости.

В частности, я бы рекомендовал взглянуть на Linq To SQL, так как это простое введение. Вы в значительной степени добавляете новый объект «Linq to SQL Classes» из Add->New Item->Data (назовем его DB.dbml), перейдите к View->Server Explorer (укажите свои настройки SQL-сервера), перетащите ваши таблицы SQL в окно конструктора, выполните сборку, а затем сможете получить доступ к своим базы данных, такие как объекты в коде:

DBDataContext db = new DBDataContext(); 
var cars = db.Cars.Where(c => c.Name == "Ford Falcon"); 
+3

Nhibernate является также хороший вариант для ORM .Net –

2

Linq to Entities сделает для вас все самое интересное. Вы считали этот вариант?

В противном случае кажется, что большинство людей составляют 1 класс за таблицу, а более сложное управление отношениями обычно обрабатывается в уровне бизнес-логики.

+2

Linq to Entities против Linq to SQL: http://dotnetaddict.dotnetdevelopersjournal.com/adoef_vs_linqsql.htm – Steve