Как выполнить запрос, возвращающий объекты типа сущностей (платформа Entity Framework)
В этом разделе показан пример запроса, возвращающего коллекцию сущностей. Затем запрос проходит по коллекции Contacts
и выводит имя и фамилию для каждого объекта Contact
. . Чтобы вернуть только один объект, можно использовать один из следующих методов поверх запроса: First, FirstOrDefault, Single, SingleOrDefault.
Один и тот же пример приводится с использованием всех следующих технологий запросов платформы Entity Framework .
LINQ to Entities
Сущность Entity SQL с ObjectQuery<T>
Методы построителя запросов ObjectQuery<T>
Пример в этом разделе основан на модели Adventure Works Sales. Чтобы запустить код, используемый в данном разделе, нужно сначала добавить к проекту модель Adventure Works Sales и настроить его для использования платформы Entity Framework. Дополнительные сведения см. в разделе Как использовать мастер моделей EDM (Entity Framework) или Как вручную настроить проект Entity Framework и Как определить модель EDM вручную (Entity Framework).
Пример
Далее приведен пример LINQ to Entities .
Using context As New AdventureWorksEntities()
Dim LastName = "Zhou"
Dim query = From contact In context.Contacts Where contact.LastName = LastName
' Iterate through the collection of Contact items.
For Each result As Contact In query
Console.WriteLine("Contact First Name: {0}; Last Name: {1}", _
result.FirstName, result.LastName)
Next
End Using
using (AdventureWorksEntities context = new AdventureWorksEntities())
{
string LastName = "Zhou";
var query = from contact in context.Contacts where
contact.LastName == LastName select contact;
// Iterate through the collection of Contact items.
foreach( var result in query)
{
Console.WriteLine("Contact First Name: {0}; Last Name: {1}",
result.FirstName, result.LastName);
}
}
Далее приведен пример Entity SQL .
Using context As New AdventureWorksEntities()
Dim esqlString As String = "SELECT VALUE Contact " & _
"FROM AdventureWorksEntities.Contacts as Contact where Contact.LastName = @ln"
Dim query As New ObjectQuery(Of Contact)(esqlString, context, MergeOption.NoTracking)
query.Parameters.Add(New ObjectParameter("ln", "Zhou"))
' Iterate through the collection of Contact items.
For Each result As Contact In query
Console.WriteLine("Contact First Name: {0}; Last Name: {1}", _
result.FirstName, result.LastName)
Next
End Using
using (AdventureWorksEntities context =
new AdventureWorksEntities())
{
string esqlQuery = @"SELECT VALUE Contact
FROM AdventureWorksEntities.Contacts as Contact where Contact.LastName = @ln";
// The following query returns a collection of Contact objects.
ObjectQuery<Contact> query = new ObjectQuery<Contact>(esqlQuery, context, MergeOption.NoTracking);
query.Parameters.Add(new ObjectParameter("ln", "Zhou"));
// Iterate through the collection of Contact items.
foreach (Contact result in query)
Console.WriteLine("Contact First Name: {0}; Last Name: {1}",
result.FirstName, result.LastName);
}
Далее приведен пример метода построителя запросов.
Using context As New AdventureWorksEntities()
Dim query As ObjectQuery(Of Contact) = _
context.Contacts.Where("it.LastName==@ln",
New ObjectParameter("ln", "Zhou"))
' Iterate through the collection of Contact items.
For Each result As Contact In query
Console.WriteLine("Contact First Name: {0}; Last Name: {1}", _
result.FirstName, result.LastName)
Next
End Using
using (AdventureWorksEntities context =
new AdventureWorksEntities())
{
ObjectQuery<Contact> query= context.Contacts.Where("it.LastName==@ln",
new ObjectParameter("ln", "Zhou"));
// Iterate through the collection of Contact items.
foreach (Contact result in query)
Console.WriteLine("Contact First Name: {0}; Last Name: {1}",
result.FirstName, result.LastName);
}
См. также
Задачи
Как выполнить запрос, возвращающий коллекцию анонимных типов (платформа Entity Framework)
Практическое руководство. Выполнение запроса, возвращающего коллекцию типов-примитивов (платформа Entity Framework)
Как выполнять параметризованный запрос (платформа Entity Framework)
Другие ресурсы
Определение расширенных моделей данных (задачи платформы Entity Framework)