[英]Build list for WPF from LINQ query result
What I need to learn how to construct List from query results 我需要学习如何从查询结果构造列表
My DBContext: 我的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; }
In c# I created List: 在C#中,我创建了List:
private List<OwnerTransport> _ownerTransportList;
Also have a data from my DBContext: 也有来自我的DBContext的数据:
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 I want to see in OwnersTransportList ant set is as ItemSource for my DataGrid 我想在OwnersTransportList蚂蚁集中看到的queryResult是作为DataGrid的ItemSource
Consider using LINQ-to-Entities to execute filters on the data in the (DB) store before pulling the data into memory through EF. 在通过EF将数据拖入内存之前,请考虑使用LINQ-to-Entities对(DB)存储中的数据执行筛选器。
For example, to populate your WPF GridControl, execute the following code. 例如,要填充WPF GridControl,请执行以下代码。 As an example for a possible filter, I included a where clause to filter for a specific
TransportID
. 作为一个可能的过滤器的示例,我包括了一个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;
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.