Маршрутизация URL запросов ASP.NETMVC приложением.
В ASP.NET MVC 5 все определения маршрутов находятся в файле RouteConfig.cs, который располагается в проекте в папке App_Start. Если мы на него посмотрим, то увидим настройки маршрута по умолчанию:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using System.Web.Routing;
namespace Mvc5RoutesApp
{
public class RouteConfig
{
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);
}
}
}
Установкой маршрутов занимается статический метод RegisterRoutes. Вызов метода производится в файле Global.asax в методе Application_Start:
protected void Application_Start()
{
AreaRegistration.RegisterAllAreas();
FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
RouteConfig.RegisterRoutes(RouteTable.Routes);
BundleConfig.RegisterBundles(BundleTable.Bundles);
}
ВызовметодаRouteConfig.RegisterRoutes(RouteTable.Routes) какразипроизводитрегистрациюмаршрутоввприложении.
Маршрутпоумолчанию:
routes.IgnoreRoute("{resource}.axd/{*pathInfo}") - отключаетобработкузапросовдлянекоторыхфайлов, напримерсрасширением *.axd (WebResource.axd)
Routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);
содержит маршрут Default, связывающий первый сегмент URL с именем контроллера, второй с методом, и третий с параметром id.
Общая характеристика технологии LINQ и интерфейсов для работы с различными источниками данных.
LINQ (Language Integrated Query, запрос, интегрированный в язык) – проект Microsoft по добавлению синтаксиса языка запросов, напоминающего SQL, в языки программирования платформы .NET Framework
|
|
§ Технология LINQ позволяет вам писать безопасные в смысле типизации структурированные запросы к локальным коллекциям объектов и удаленным источникам данных.
§ LINQ позволяет вам строить запросы к любой коллекции, реализующей интерфейс IEnumerable<>, будь то массив, список, коллекция XML DOM или удаленный источник данных, такой как таблицы на SQL-сервере.
§ Технология LINQ предлагает сочетание достоинств проверки типов на этапе компиляции и динамического составления запросов.
§ Системные типы, поддерживающие LINQ, определены в пространствах имен System.Linq и System.Linq.Expressions в сборке System.Core.
Запрашиваемые (исходные) данные могут быть представлены в форме:
• XML
LINQ to XML — API-интерфейс, который ориентирован на работу с XML
• баз данных
LINQ to SQL — API-интерфейс IQueryable<T>, позволяет запросам LINQ работать с реляционными базами данных.
LINQ to DataSet — API-интерфейс для работы с DataSet.
LINQ to Entities— альтернативный LINQtoSQL API-интерфейс для обращения к базе данных. Он отделяет сущностную объектную модель от физической базы данных, вводя логическое отображение между ними двумя. В частности, когда необходимо ослабить связь между сущностной объектной моделью и базой данных, если сущностные объекты конструируются из нескольких таблиц или требуется большая гибкость в моделировании сущностных объектов, то в этом случае LINQ to Entities может стать оптимальным выбором.
|
|
• объектов
LINQ to Objects- API-интерфейс IEnumerable<T>длястандартныхоперацийзапросов (Standard Query Operators)
Операция запроса в LINQ. Способы записи запроса (синтаксисы записи). Выполнение запроса.
Оператор запроса — это метод, преобразующий последовательность. В типичном случае оператор запроса принимает входную последовательность и возвращает результат преобразования — выходную последовательность. В классе Enumerable из пространства имен System.Linq имеется около 40 операторов запроса, и все они реализованы как статические методы расширения. Они называются стандартными операторами запроса.
Все операции запроса LINQ состоят из трех различных действий.
1. получение источника данных;
2. создание запроса;
3. выполнение запроса
Запрос – это набор инструкций, которые описывают, какие данные необходимо извлечь из указанного источника (или источников) данных, а также описывают форму и организацию извлекаемых данных. Запрос отличается от полученного с его помощью результата.
|
|
Способы создания запросов LINQ на языке C#:
1. Использование синтаксиса запроса (интегрированный запрос).
2. Использование синтаксиса метода (методы расширений).
3. Использование сочетания синтаксиса запроса и синтаксиса метода.
Пример:
class IntroToLINQ
{
staticvoidMain()
{
// 1. Получение источника данных
int[] numbers = newint[7] { 0, 1, 2, 3, 4, 5, 6 };
// 2. Созданиезапроса
// numQuery – этоIEnumerable<int>
var numQuery =
from num in numbers
where (num % 2) == 0
select num;
// 3. Выполнениезапроса
foreach (int num in numQuery)
{
Console.Write("{0,1} ", num);
}
}
}
LINQ включает в себя около 50 стандартных операций запросов, разделяемых на 2 большие группы
• отложенные операции -выполняются не во время инициализации, а только при их вызове;
• не отложенные операции-выполняются сразу.
52. Запросы LINQ для осуществления фильтрации, сортировки и группировки. Примеры для различных способов записи.
Метод расширения Where и соответствующее выражение запроса where.
//Where extension method example
var customersOver25 = customers.Where(cust => cust.Age > 25);
//where query operator example
var customersOver25 = from cust in customers where cust.Age > 25 select cust;
Метод расширения OrderBy и соответствующее выражение запроса orderby.
//OrderBy extension method example
|
|
var sortedCustomers = customers.OrderBy(cust => cust.FirstName);
//orderby query operator example
var sortedCustomers = from cust in customers orderby cust.FirstName select cust;
Предложение group позволяет группировать результаты на основе указанного ключа.
Метод расширения GroupBy и соответствующее выражение запроса groupby.
//GroupBy extension method example
var customersGroupedByAge = customers.GroupBy(cust => cust.Age);
//groupby query operator example
var customersGroupedByAge = from cust in customers group cust by cust.Age;
Когда запрос завершается предложением group, результаты представляются в виде списка из списков. Каждый элемент в списке является объектом, имеющим член Key и список элементов, сгруппированных по этому ключу.
Дата добавления: 2018-05-02; просмотров: 203; Мы поможем в написании вашей работы! |
Мы поможем в написании ваших работ!