Несколько, когда условия для объекта приводят к тому, что свойство только для чтения будет истинным - PullRequest
0 голосов
/ 10 апреля 2020

Я пытаюсь отфильтровать результаты от объекта, но когда я ставлю два условия перед загрузкой, он будет фильтровать только по первому условию, например

      _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();

В вышеприведенных примерах, поскольку результаты фильтруются только по первому условию, я могу добавить новые строки, или, другими словами, только чтение - ложь. Но когда я разделил условия, один на загрузку и один на ToBindingList, как это ...

     _entity.LineItems.Where(x => x.EstID == Est.EstID).Load();
     radLaborLineItems.DataSource = _entity.LineItems.Local.ToBindingList().Where(y => y.LineItemType == 1);

Результат фильтруется обоими условиями, но я не могу добавить новую строку из-за исключение данных, которое говорит, что коллекция только для чтения. Я даже пытался вручную установить свойства readonly и AllowAddNewRow, но все равно получаю ошибку readonly при попытке добавить новую строку.

     radLaborLineItems.ReadOnly = false;
     radLaborLineItems.AllowAddNewRow = true;

Поэтому мой вопрос заключается в том, как я могу отфильтровать сущность по нескольким условиям и все еще есть функция добавления новой строки?

Также стоит отметить, что результаты привязываются к telerik radGridView

1 Ответ

0 голосов
/ 10 апреля 2020
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;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...