Есть ли способ сделать generi c DBSets в пользовательском элементе управления winforms? - PullRequest
0 голосов
/ 10 января 2020

У меня есть следующий код:

 public class MaterialBase : UserControl
 {
      ...
      public virtual DbSet _DBSet { get; } //the entity needing to be loaded
      ...
      private DBContext DB { get; set; } //the database model we are connecting to


      private void MaterialBase_Load(object sender, EventArgs e){
           grid.SetDataBinding(_DBSet.Local.ToBindingList(), null, true, true);
      }
 }

Проблема, с которой я сталкиваюсь, заключается в ошибках "... Local.ToBindingList ()" с сообщением

 ToBindingList is not a member of IList

Сейчас , если бы я сделал код менее универсальным c для целей тестирования, я мог бы изменить проблемную строку кода на следующую, и она отлично работает:

 grid.SetDataBinding(DB.Items_MaterialOne.Local.ToBindingList(), null, true, true);

Вообще говоря, цель этого состоит в том, что MaterialBase пользовательский элемент управления, который реализуется другими более определенными c элементами управления.

Для нового примера пользовательского элемента управления:

 public class MaterialOne : MaterialBase {
      public override _DBSet => DB.Items_MaterialOne; 

 }

Сам элемент управления просто предоставляет общий способ редактирования характеристик для куча разных материалов, так что буквально единственное, что отличается - это сущность базы данных (Items_MaterialOne), которую мне нужно загрузить в сетку.

Итак, кто-нибудь может мне помочь с общим способом / generi c метод загрузки данных в сетку через структуру сущностей? C# или с VB все в порядке, и я не слишком доволен своей текущей реализацией, поэтому приветствуются новые идеи.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...