多个,其中实体的条件导致只读属性为true

问题描述 投票:0回答:1

我正在尝试从实体中过滤结果,但是当我在加载之前放置两个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

c# entity-framework-6 telerik-grid
1个回答
0
投票
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;
© www.soinside.com 2019 - 2024. All rights reserved.