Академический Документы
Профессиональный Документы
Культура Документы
1. ВСТУПЛЕНИЕ.
Идеальный синтаксис:
var locals= f rom c i n customers
where c.ZipCode == 49000
se lec tnew
{
FullName = c.FirstName+ " "+ c.LastName ,
HomeAddress = c.Address
};
Запрос:
I Enumerab le< Cus tomerTup le> locals= customers
.Where (c => c.ZipCode == 49000 )
.Select(c => new Cus tomerTup le(c.Name , c.Address) ) ;
Перепишем запрос с использованием анонимных
типов:
l o ca l s= cus tomers
.Where (c => c.Z ipCode == 49000 )
.Se lec t(c => new { c.Name , c.Address }) ;
Полученный класс:
c lass
{
pub l i cs t r i ngFu l lName;
pub l i cs t r i ngHomeAddress ;
}
Изменим имена полей анонимного типа:
l o ca l s= cus tomers
.Where (c => c.Z ipCode == 49000 )
.Se lec t(c => new {
Fu l lName = c.F i r s tName+ " "+ c.Las tName ,
HomeAddress = c.Address
}) ;
Полученный класс:
c lass
{
pub l i cs t r i ngFu l lName;
pub l i cs t r i ngHomeAddress ;
}
1.4. Неявно типизированные локальные
переменные
Например:
var integer= 10;
var str= "Dog";
var sb = new StringBuilder
();
/ / Er ro r
i n teger= s t r;
Используем var для корректности синтаксиса
запроса:
var locals= customers
.Where (c => c.ZipCode == 49000 )
.Select (c => new {
FullName = c.FirstName+ " "+ c.LastName ,
HomeAddress = c.Address
}) ;
<xml>
2.1. Интерфейс IEnumerable<T>.
Пример кода:
L i s<
t int> list
= new L i s <
t int> { 1, 3, 2 };
Database ↔ DataContext
Table ↔ Class
Column ↔ Property/Field
Relationship ↔ Property/Field
View ↔ Class
Stored Procedure ↔ Function
Зададимся таблицей:
CREATE TABLE [dbo].[Emp](
[Id] [int]
IDENT ITY(1,1) NOT NULL ,
[Name] [varchar](50) NULL ,
CONSTRA INT [PK_Emp] PR IMARY KEY CLUSTERED
(
[Id]ASC
) WITH (PAD_INDEX = OFF , IGNORE_DUP_KEY = OFF ) ON [PRIMARY]
) ON [PRIMARY]
Провайдеры SQL-LINQ:
• MS SQL Server — поддерживается по умолчанию.
• MySQL, Oracle, PostgreSQL — поддерживаются с
использованием стороннего провайдера DB_Linq.
3.3. LINQ TO XML (XLINQ).
Для работы с XML в XLINQ были созданы
специальные классы. Основные из них:
• XElement — XML-элемент
• XAttribure — XML-атрибут
Пример создания простого документа:
XE lement xml = new XE lement("contacts" ,
new XE lement("contact" ,
new XAt t r i bu te , "2") ,
("contactId"
new XE lement("firstName" , "Barry"),
new XE lement("lastName", "Gottshall" )
),
new XE lement("contact" ,
new XAt t r i bu te , "3") ,
("contactId"
new XE lement("firstName" , "Armando") ,
new XE lement("lastName", "Valdes" )
)
);
Создание документа из БД:
var xml = new XElement("employees",
f rom emps i n db.GetTable< Employee > ( )
orderbyemps .Name ascend ing
se lec tnew XElement("employee",
new XAttribute ("empId", emps .Id) ,
new XElement("lastName", emps .Name .Substring
(0,
emps .Name .IndexOf(' )') ) ,
new XElement("firstName" ,
emps .Name .Substring (emps .Name .IndexOf(' )'+ 1) )
)
);