我正在尝试从实体中过滤结果,但是当我在加载之前放置两个where条件时,它只会像这样按第一个条件进行过滤
_entity.LineItems.Where(x =>( x.EstID == Est.EstID) && (x.LineItemType == 1)).Load();
radLaborLineItems.DataSource = _entity.LineItems.Local.ToBindingList();
也这样尝试过,结果相同
_entity.LineItems.Where(x => x.EstID == Est.EstID).Where(y => y.LineItemType == 1).Load();
radLaborLineItems.DataSource = _entity.LineItems.Local.ToBindingList();
在上述示例中,由于仅根据第一个条件对结果进行过滤,因此我可以添加新行,换句话说,只读为false。但是,当我将条件拆分出去时,像这样在负载上一个在ToBindingList上一个...
_entity.LineItems.Where(x => x.EstID == Est.EstID).Load();
radLaborLineItems.DataSource = _entity.LineItems.Local.ToBindingList().Where(y => y.LineItemType == 1);
结果被这两个条件过滤,但是由于数据异常表明收集是只读的,因此我无法添加新行。我什至尝试手动设置readonly和AllowAddNewRow属性,但是在尝试添加新行时仍然出现只读错误。
radLaborLineItems.ReadOnly = false;
radLaborLineItems.AllowAddNewRow = true;
所以我的问题是如何在多个条件下过滤实体,并且仍然具有添加新行的功能?
还值得注意的是,结果已绑定到telerik radGridView
var lineItemList = (
from e in _entity.LineItems
where
e.EstID == Est.EstID
&& e.LineItemType == 1
select new LineItemsModel{
e.EstId,
e.LineItemType
}
).ToList();
// -- Insert -- \\
lineItemList.Add(new LineItemsModel(){
EstId = 1,
LineItemType = 2
});
radLaborLineItems.DataSource = lineItemList;