C # LINQ Как получить источник данных из БД? - PullRequest
2 голосов
/ 27 сентября 2011

Я пытаюсь использовать LINQ в программе на C # для получения информации из базы данных. Я нашел много примеров, показывающих базовые и расширенные запросы, но я не могу найти ничего, чтобы получить базовое соединение с базой данных. См. Основной пример LINQ ниже:

var adultNames = from person in people
                 where person.Age >= 18
                 select person.Name; 

Я просто не могу понять, как добраться до определенной таблицы базы данных и получить из нее информацию. Я хочу иметь возможность подключиться к таблице БД и вернуть некоторую информацию из нее. Спасибо!

Ответы [ 6 ]

2 голосов
/ 27 сентября 2011

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

using System.Data.Linq;
using System.Data.Linq.Mapping;

определить следующую сущность следующим образом:

[table]
class people
{
    [column]
    public int Age { get; set; };
    [column] 
    public string Name { get; set; };
}

тогда вы можете написать запрос к базе данных

Datacontext db = new DataContext("database Connection String");
var adultNames = from person in db.GetTable<people>()
             where person.Age >= 18
             select person.Name; 
2 голосов
/ 27 сентября 2011

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

В строке меню перейдите в Данные -> Добавить новый источник данных. Отсюда выберите базу данных, затем модель данных объекта. Выполните остальные шаги, чтобы создать источник данных для вашего проекта.

В вашей программе вы можете создать объект источника данных, используя:

WhatYouCalledTheDataSource datasourceObject = new WhatYouCalledTheDataSource ();

Затем можно выполнить запросы к этому объекту, изменив первую строку запроса на:

var adultNames = from person in datasourceObject.people 

чтобы получить нужные данные, после того как у вас есть запрос, вы можете поместить результаты в список, например:

List<string> queryResults = new List<string>();

queryResults.AddRange(adultNames);

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

var adultNames = from person ...
                 ...
                 select person;
List<people> queryResults = new List<people>();
queryResults.AddRange(adultNames);
2 голосов
/ 27 сентября 2011

Существует несколько способов получения данных из базы данных.ADO.NET - это общая технология.Ваши конкретные параметры:

System.Data / SqlClient / ODP

Вы можете использовать стандартную систему запросов в ADO.NET для получения данных из любой базы данных, которая использует ODBCили используйте собственные поставщики данных, такие как SqlClient или ODP.Пространство имен SqlClient может использоваться для получения данных из SQL Server.Поставщик данных Oracle (ODP) используется с Oracle.

Вы должны самостоятельно писать запросы / хранимые процедуры, используя «сырой» ADO.NET.

Вот превосходный список ADO.NET пример кода: http://msdn.microsoft.com/en-us/library/dw70f090.aspx

Вот ссылка на ODP Oracle:
http://www.oracle.com/technetwork/topics/dotnet/index-085163.html

LINQ to SQL

LINQ toSQL является поставщиком LINQ специально для базы данных SQL Server.Он все еще поддерживается, но заменяется Entity Framework.

Более подробно здесь: http://weblogs.asp.net/scottgu/archive/2007/05/19/using-linq-to-sql-part-1.aspx

Entity Framework

Entity Framework изначально работает сSQL Server и может работать с Oracle с использованием сторонних поставщиков данных или поставщиков с открытым исходным кодом.

Entity Framework 4 / 4.1 позволит вам использовать Entity Data Model (EDM) в качестве абстракциивашей базы данных.EDM отобразит набор объектов, с которыми вы можете взаимодействовать, а объект Context используется для извлечения / фиксации данных в базе данных.CRUD-запросы генерируются динамически из вашего синтаксиса LINQ, поэтому вам не нужно самостоятельно писать запросы T-SQL или PL-SQL.

Вот базовый пример Entity Framework:
http://www.codeproject.com/KB/database/sample_entity_framework.aspx

2 голосов
/ 27 сентября 2011

Если вы используете Linq to Sql, это может помочь: http://weblogs.asp.net/scottgu/archive/2007/05/19/using-linq-to-sql-part-1.aspx
структура объекта: http://www.codeguru.com/csharp/csharp/net30/article.php/c15489

2 голосов
/ 27 сентября 2011

Звучит так, будто вы просматривали примеры LINQ, который позволяет запрашивать данные из набора данных. Кроме того, то, что вам нужно, называется Object Relational Mapper (ORM). Посмотрите на LINQ to SQL или Entity Framework (новее), чтобы начать с этого. Этот слой будет анализировать базу данных и создавать большую инфраструктуру для извлечения данных для вас на основе модели данных.

1 голос
/ 27 сентября 2011

Если вы посмотрите на этот NerdDinner pdf-файл , который создает решение MVC, он покажет, как шаг за шагом создавать набор данных с использованием Linq to SQL

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