КАТЕГОРИИ: Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748) |
Entity Client
Низкоуровневый API-интерфейс для доступа к Entity Framework находится в пространстве имен System.Data.SqlClient. Это пространство имен содержит поставщика ADO.NET, который обращается к базе данных, используя сущностную модель данных — Entity Data Model (EDM). Этот поставщик ADO.NET, определяет классы, унаследованные от базовых классов DbConnection, DbCommand, DbParameter и DbDataReader. Здесь классы называются EntityConnection, EntityCommand, EntityParameter и EntityDataReader. Упомянутые классы можно использовать таким же образом, как описывалось ранее, за исключением того, что требуется специальная строка соединения, и для доступа к модели EDM Entity вместо T-SQL применяется SQL. Подключение к базе данных осуществляется через класс EntityConnection, что требует специальной сущностной строки соединения. Эта строка читается из конфигурационного файла с помощью класса ConfigurationManager из пространства имен System.Configuration. Метод CreateCommand класса EntityConnection возвращает EntityCommand. Текст команды для EntityCommand присваивается свойству CommandText и требует команды Entity SQL. Строка соединения необходима для EDM и отличается от нормальной строки соединения ADO.NET, потому что требуется информация об отображении. Отображение определено ключевым словом metadata. В отображении должны быть указаны три вещи: список с разделителями файлов отображения, Provider — для инвариантного имени поставщика для доступа к источнику данных, и Provider connection string для присваивания зависящей от поставщика строки соединения. Список с разделителями файлов отображения включает файлы InventoryEDM.csdl, InventoryEDM.ssdl и InventoryEDM.msl, которые содержатся внутри ресурсов в сборке, как определено префиксом res:. Внутри Visual Studio визуальный конструктор использует только один файл — InventoryEDM.edmx, который содержит код CSDL, SSDL и MSL. Установка свойства Custom Tool (Специальный инструмент) в EntityModelCodeGenerator создает три файла, которые содержатся внутри ресурсов. В настройке connectionString можно найти строку соединения с базой данных. Эта часть — такая же, как простая строка соединения ADO.NET, и зависит от поставщика, который устанавливается в настройке provider: <?xml version="1.0" encoding="utf-8"?><configuration> <connectionStrings> <add name="AutoLotEntities" connectionString="metadata=res://*/InventoryEDM.csdl|res://*/InventoryEDM.ssdl|res://*/InventoryEDM.msl; provider=System.Data.SqlClient;provider connection string=" Data Source=MICROSOF-1EA29E\SQLEXPRESS;Initial Catalog=AutoLot; Integrated Security=True;Pooling=False;MultipleActiveResultSets=True"" providerName="System.Data.EntityClient" /> </connectionStrings></configuration>В строке соединения можно также указывать файлы, CSDL, SSDL и MSL, которые не включены в сборку в виде ресурсов. Это полезно, если необходимо изменить содержимое этих файлов после развертывания проекта. Для запросов данных с помощью Entity Client используется Entity SQL. Язык Entity SQL расширяет T-SQL добавлением типов. Этот синтаксис не требует соединений, поскольку вместо них могут использоваться ассоциации сущностей. В Entity SQL нет оператора SELECT *. Все столбцы извлекаются ранее запросом EntitySet. С помощью SELECT VALUE можно также получить все столбцы, как показано в следующем фрагменте. В нем также применяется фильтр с WHERE, который позволяет получить в запросе только определенных издателей. Обратите внимание, что в CommandText параметр указывается с символом однако при добавлении параметра в коллекцию Parameters символ @ не используется: command.CommandText = "SELECT VALUE it FROM AutoLotEntities.AutoLot AS it WHERE " + "it.Carname = @BMW";command.Parameters.AddWithValue("Carname", "Audi");
Дата добавления: 2015-05-09; Просмотров: 391; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |