привязать структурированный массив к базе данных - PullRequest
1 голос
/ 09 октября 2009

У меня есть arraylist

ArrayList backupSpecList = new ArrayList();

И состав:

public struct BackupSpecEntry
{
   //for Multiple BACKUP_SPEC_EXCLUDE_PATHS
   public string path;
   public string inclExcl;
   public byte inclExclFlags;
   public bool indexContents;
   public int serverBackupSpecId;
   public int freq;
   public int retention;

   //for Multiple BACKUP_SPEC_EXCLUDE_FILE_NAMES

   public BackupSpecEntry(string Path, string InclExcl, byte InclExclFlags, bool IndexContents,
    int ServerBackupSpecId, int Freq, int Retention)
   {
      path = Path;
      inclExcl = InclExcl;
      inclExclFlags = InclExclFlags;
      indexContents = IndexContents;
      serverBackupSpecId = ServerBackupSpecId;
      freq = Freq;
      retention = Retention;
   }
}

Я помещаю эту структуру в массив и отправляю ее на следующую страницу в виде сеанса

Session["BackupSpecList"] = backupSpecList;

Я получаю это на следующей странице как

ArrayList jaja = (ArrayList)Session["BackupSpecList"];

Все это происходит идеально, но мне нужна помощь, чтобы поместить это в базу данных. Может кто-нибудь, пожалуйста, направить меня? Спасибо.

Ответы [ 3 ]

0 голосов
/ 01 января 2010

Используя .NET 3.5, вы можете использовать Entity Framework или LINQ to SQL . Я рекомендую последний для начинающих. Таким образом, вы получите всю работу с базой данных для себя, все, что вам нужно сделать, это связать и наслаждаться. Обратите внимание, что вам совсем не нужно много знать о LINQ для использования инфраструктуры.

Обычный способ использования LINQ to SQL - сначала создать объекты базы данных и позволить Visual Studio создавать объекты для вас на их основе. Здесь вы должны создать таблицу BackupSpecEntry и следовать одному из этих руководств по настройке привязки данных к классам LINQ to SQL:

У меня нет гарантии качества вышеуказанных статей (за исключением ScottGu's). Я просто быстро выбрал их из поиска, потому что они выглядели уместно.

Чтобы добавить свою собственную функциональность к сгенерированному классу BackupSpecEntry, вы можете получить свой собственный класс из сгенерированного или использовать частичный класс . Я рекомендую использовать частичные классы по наследованию, когда это возможно, потому что именно так Microsoft намеревается расширить сгенерированные классы.

0 голосов
/ 01 января 2010

То, что вам нужно, называется уровнем сохраняемости данных. В .NET лучшим способом доступа к данным, хранящимся в системах управления реляционными базами данных (например, SQL Server), является ADO.NET. Для этого предусмотрены гайки и болты низкого уровня.

Все виды уровней персистентности данных работают с ADO.NET внутренне, но обеспечивают абстракции поверх него.

Исходя из формулировки вашего вопроса (вы используете объекты для представления данных ваших приложений), я предлагаю вам использовать Data Mapper . Такой Data Mapper отображает между вашими объектами и базой данных. Поскольку вы, вероятно, используете RDBMS, вам понадобится Object-Relational-Mapper (ORM).

Есть несколько доступных вариантов. Поскольку вы используете .NET Framework 3.5, вы можете использовать Linq-To-Sql или Entity-Framework, которые оба предоставлены Microsoft и имеют хорошую интеграцию IDE. Другие варианты - NHibernate и т. Д. Здесь можно найти много информации об этом.

0 голосов
/ 13 октября 2009

Если вы хотите вставить или обновить базу данных с помощью содержимого вашей структуры, тогда ADO.NET - хорошее место для начала. Вот хороший учебник , который познакомит вас с основами чтения, обновления и вставки в базу данных SQL Server. Существует также официальный MSDN сайт для более подробной информации.

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