2014-11-02 1 views
0

Я добавил в свой проект новую базу данных, основанную на сервисах. В Мастере настройки источника данных для моего DataSet я выбрал таблицу «Parts» из базы данных. Почему я не могу получить доступ к данным из класса QuotingDataSet?Доступ к базе данных через DataSet в C#

private void buttonTest_Click(object sender, EventArgs e) 
    { 
     QuotingDataSet dataSet = new QuotingDataSet(); 

     var partQuery = 
      from part in dataSet.Parts.AsEnumerable() 
      where part.Part_Number == txtBoxTestInput.Text 
      select part.Part_Description; 

     foreach (var part in partQuery) 
     { 
      txtBoxTestOutput.Text = part; 
     } 
    } 

Если он должен быть заполнен вручную, есть LINQ к SQL команды просто поместить всю таблицу в DataSet? Мне не нравится SQL, поэтому я стараюсь не записывать весь SQL в SqlDataAdapter, как показано на рисунке here.

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

+1

Почему LINQ к SQL (который кстати. списанием технологии не supporte d больше) работает с чем-то таким древним и не используется в большинстве программных проектов в качестве набора данных? Вы следуете практике практики с 15 лет назад и делаете это с использованием технологий, уволенных в течение 10 лет. – TomTom

ответ

1

Взгляните на структуру Entity Framework. Щелкните правой кнопкой мыши на своем проекте и управляйте пакетами NuGet, найдите «Entity Framework» и добавьте его в свой проект.

В Entity Framework есть много информации о сети, а версия 6 - это последняя версия. Используя методологию базы данных, инфраструктура Entity создаст структуры C# на основе ваших таблиц и столбцов и позволит вам запускать запросы LINQ прямо в базе данных.

Там хороший пример в CodeProject для базы данных-первых методологии, которая, как я предпочитаю использовать его, так как это позволяет легко настроить с существующими базами данных ...

http://www.codeproject.com/Tips/739164/Entity-Framework-Tutorial-for-Beginners

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

https://msdn.microsoft.com/en-us/data/ee712907.aspx

+0

Фактически, в отличие от LINQ to SQL, Entity Framework обычно не создает модель, которая точно соответствует базе данных. Помимо прочего, он по умолчанию будет опускать таблицы соединений, содержащие только ключи и заменяющие их ассоциацией. –

+0

Entity framework - это новейшая технология, рекомендованная Microsoft, и она отлично справляется с задачей сделать жизнь легкой. Я не сказал, что это даст точное соответствие таблицам, хотя я не знал о том, какое ограничение вы упомянули. У меня есть пара таблиц соединений, которые вы описываете, но у меня обычно есть одно или два дополнительных поля в дополнение к основной таблице соединений, поэтому я не сталкивался с этой незначительной проблемой. Хорошо иметь в виду, но не стоит проголосовать! – user1961169

+0

Наверное, я неправильно понял ваш ответ. Я бы удалил downvote, но не могу, если вы не отредактируете ответ. –

Смежные вопросы