Содержание
- 2. LINQ to entities Это часть платформы ADO.NET Entity Framework, альтернативный интерфейс LINQ API, используемый для обращения
- 3. Технология LINQ to Entities LINQ to Entities позволяет разработчикам создавать запросы к базе данных с помощью
- 4. Пример работы программы public class Company { public int Id { get; set; } public string
- 5. Пример работы программы class PhoneContext : DbContext { static PhoneContext() { Database.SetInitializer(new MyContextInitializer()); } public PhoneContext()
- 6. ЗАПРОСЫ В LINQ TO ENTITIES Например, используем некоторые операторы LINQ: using(PhoneContext db = new PhoneContext()) {
- 7. Выполнение запроса
- 9. Скачать презентацию
Слайд 2
LINQ to entities
Это часть платформы ADO.NET Entity Framework, альтернативный интерфейс LINQ
LINQ to entities
Это часть платформы ADO.NET Entity Framework, альтернативный интерфейс LINQ
API, используемый для обращения к базе данных. Он отделяет сущностную объектную модель данных от физической базы данных, вводя логическое отображение между ними.
Слайд 3
Технология LINQ to Entities
LINQ to Entities позволяет разработчикам создавать запросы к
Технология LINQ to Entities
LINQ to Entities позволяет разработчикам создавать запросы к
базе данных с помощью того же языка, который был использован для создания бизнес-логики. На схеме показана связь между LINQ to Entities и платформой Entity Framework, ADO.NET 2.0 и источником данных.
Слайд 4
Пример работы программы
public class Company
{
public int Id { get; set; }
public
Пример работы программы
public class Company
{
public int Id { get; set; }
public
string Name { get; set; }
public ICollection Phones { get; set; }
public Company()
{
Phones = new List();
}
}
public class Phone
{
public int Id { get; set; }
public string Name { get; set; }
public int Price { get; set; }
public int CompanyId { get; set; }
public Company Company { get; set; }
}
public ICollection
public Company()
{
Phones = new List
}
}
public class Phone
{
public int Id { get; set; }
public string Name { get; set; }
public int Price { get; set; }
public int CompanyId { get; set; }
public Company Company { get; set; }
}
Слайд 5
Пример работы программы
class PhoneContext : DbContext
{
static PhoneContext()
{
Database.SetInitializer(new MyContextInitializer());
}
public PhoneContext() :base("DefaultConnection")
{}
public DbSet
Пример работы программы
class PhoneContext : DbContext
{
static PhoneContext()
{
Database.SetInitializer(new MyContextInitializer());
}
public PhoneContext() :base("DefaultConnection")
{}
public DbSet
Companies { get; set; }
public DbSet Phones { get; set; }
}
class MyContextInitializer : DropCreateDatabaseAlways
{
protected override void Seed(PhoneContext db)
{
Company c1 = new Company { Name = "Samsung" };
Company c2 = new Company { Name = "Apple" };
db.Companies.Add(c1);
db.Companies.Add(c2);
db.SaveChanges();
Phone p1 = new Phone {Name="Samsung Galaxy S5", Price=20000, Company = c1};
Phone p2 = new Phone {Name="Samsung Galaxy S4", Price=15000, Company = c1};
Phone p3 = new Phone {Name="iPhone5", Price=28000, Company = c2};
Phone p4 = new Phone {Name="iPhone 4S", Price=23000, Company = c2};
db.Phones.AddRange(new List(){p1, p2, p3, p4});
db.SaveChanges();
}
}
public DbSet
}
class MyContextInitializer : DropCreateDatabaseAlways
{
protected override void Seed(PhoneContext db)
{
Company c1 = new Company { Name = "Samsung" };
Company c2 = new Company { Name = "Apple" };
db.Companies.Add(c1);
db.Companies.Add(c2);
db.SaveChanges();
Phone p1 = new Phone {Name="Samsung Galaxy S5", Price=20000, Company = c1};
Phone p2 = new Phone {Name="Samsung Galaxy S4", Price=15000, Company = c1};
Phone p3 = new Phone {Name="iPhone5", Price=28000, Company = c2};
Phone p4 = new Phone {Name="iPhone 4S", Price=23000, Company = c2};
db.Phones.AddRange(new List
db.SaveChanges();
}
}
Слайд 6
ЗАПРОСЫ В LINQ TO ENTITIES
Например, используем некоторые операторы LINQ:
using(PhoneContext db =
ЗАПРОСЫ В LINQ TO ENTITIES
Например, используем некоторые операторы LINQ:
using(PhoneContext db =
new PhoneContext())
{
var phones = from p in db.Phones
where p.CompanyId == 1
select p;
}
И тот же запрос с помощью методов расширений LINQ:
using(PhoneContext db = new PhoneContext())
{
var phones = db.Phones.Where(p=> p.CompanyId == 1);
}
Оба запроса в итоге транслируются в одно выражение sql:
SELECT [Extent1].[Id] AS [Id],
[Extent1].[Name] AS [Name],
[Extent1].[Price] AS [Price],
[Extent1].[CompanyId] AS [CompanyId]
FROM [dbo].[Phones] AS [Extent1]
WHERE 1 = [Extent1].[CompanyId]}
{
var phones = from p in db.Phones
where p.CompanyId == 1
select p;
}
И тот же запрос с помощью методов расширений LINQ:
using(PhoneContext db = new PhoneContext())
{
var phones = db.Phones.Where(p=> p.CompanyId == 1);
}
Оба запроса в итоге транслируются в одно выражение sql:
SELECT [Extent1].[Id] AS [Id],
[Extent1].[Name] AS [Name],
[Extent1].[Price] AS [Price],
[Extent1].[CompanyId] AS [CompanyId]
FROM [dbo].[Phones] AS [Extent1]
WHERE 1 = [Extent1].[CompanyId]}
Слайд 7
Выполнение запроса
Выполнение запроса
- Предыдущая
Lazy load. Ленивая загрузка