У меня есть следующий код:
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 все в порядке, и я не слишком доволен своей текущей реализацией, поэтому приветствуются новые идеи.