gpt4 book ai didi

.net - OrderBy、GetNewBindingList 和 Linq to SQL

转载 作者:行者123 更新时间:2023-12-04 06:33:40 28 4
gpt4 key购买 nike

我有一个后台工作人员,负责将数据库中的数据加载到临时结构中。

Data d = new Data();
d.listGroup = context.Groups.GetNewBindingList();
d.tbUser = context.Users.OrderBy(x => x.Name);
d.listPriceLevel = context.PriceLevels.GetNewBindingList();
e.Result = d;

问题是第 3 行 (d.tbUser = ... ) 正在被延迟加载。
当然,我可以这样做:
context.Users.OrderBy( x => x.Name ).ToList();

但是话又说回来,这不是一个可绑定(bind)列表,对其所做的任何更改都不会传播回数据库。

所以我想我需要类似的东西:
d.tbUser = context.Users.OrderBy( x => x.Name ).GetNewBindingList();

但这不起作用。
目标是:检索用户列表,按用户名排序为可绑定(bind)列表。
有任何想法吗?

谢谢你的时间!

最佳答案

添加 OrderBy (与任何其他查询函数一样)将您的查询转换为 IQueryable<TEntity> .幸运的是,LINQ-to-SQL 的内部查询类型 ( DataQuery<TEntity> ) 提供了 BindingList<TEntity>通过 IListSource 的实现.

获取 BindingList对于给定的查询,您可以这样做:

var bindingList = ((IListSource)query).GetList();

在你的情况下:
d.tbUser = ((IListSource)context.Users.OrderBy(x => x.Name)).GetList();

GetList 的返回类型是 IList , 实际上是一个实际的 BindingList<User> .

关于.net - OrderBy、GetNewBindingList 和 Linq to SQL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5091852/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com