2016-06-15 2 views
0

Что мне нужно, чтобы узнать, как построить список из результатов запросасписок сборки для WPF из результата запроса LINQ

Мой DbContext:

public class Transport 
{ 
    [Key] 
    public int TransportID {get; set;} 
    public string Model { get; set; } 
    public string Brand { get; set; } 
} 

public class TransportOwner 
{ 
    [Key] 
    public int TransportOwnerID {get; set;} 
    public int TransportID {get; set;} 
    [ForeignKey("TransportID")] 
    public virtual Transport Transport { get; set; } 
} 

public virtual DbSet<Transport> Transports { get; set; } 
public virtual DbSet<TransportOwner> TransportOwners { get; set; } 

В C# я создал список:

private List<OwnerTransport> _ownerTransportList; 

Также иметь данные из моего DBC-текста:

var ownerTransport = DBContext.OwnerTransports.AsQueryable(); 

var queryResult = ownerTransport 
     .Select(t => new 
     { 
      t.ID, 
      t.PersonalCode, 
      t.TransportID, 
      Model = t.Transport.Model, 
      Brand = t.Transport.Brand, 
     }).ToList(); 

queryResult Я хочу видеть в OwnersTransportList ant set как ItemSource для моего DataGrid

+2

В чем проблема? –

+0

Я не знаю, как написать код в C#, чтобы создать список из моего запросаResult, ведь я мог бы установить источник данных для моего GridControl в WPF. Я пытаюсь это: OwnerTransportList = savTransportList.ToList() ?; – Songaila

+0

На самом деле не знаю, как преобразовать один список в совпадение матчей для моей формы – Songaila

ответ

0

Рассмотрите возможность использования LINQ-to-Entities для выполнения фильтров данных в хранилище (DB), прежде чем вытаскивать данные в память через EF.

Например, чтобы заполнить ваш WPF GridControl, выполните следующий код. В качестве примера для возможного фильтра я включил предложение where для фильтрации для определенного TransportID.

public ICollection<OwnerTransport> GetOwnerTransportByTransportId(int transportId, int? skip = null, int? take = null) 
{ 
    using (var context = new DBContext()) 
    { 
     // base query 
     var query = context.OwnerTranports.AsQueryable(); 

     // execute filter on transport ID 
     query = query.Where(t => t.TransportID == transportId.Value); 

     // apply skip/take 
     if (skip.HasValue) 
     { 
      query = query.Skip(skip.Value); 
     } 
     if (take.HasValue) 
     { 
      query = query.Take(take.Value); 
     }   

     // Materialize data. This pulls it from DB store into memory. 
     var data = query.ToList(); 

     return data; 
    } 
} 
+0

И как описать Список ведьм, которого я хочу назначить сетке? – Songaila

+0

Какой шаблон вы используете для подключения модели к представлению? MVVM? –

+0

На самом деле я совершенно новичок в работе с Oracle, Visual Studio и C#, но я очень дорог, чтобы сказать, что WPF MVVM – Songaila

Смежные вопросы