Изначально мне очень жаль, я не очень хорошо говорю по-английски. Пожалуйста, кто-нибудь поможет мне решить эту проблему, я ищу решение последние два дня.
У меня есть что-то вроде этого
public class MasterCategory
{
public virtual long Id { set; get; }
public virtual string Code { set; get; }
public virtual string Name { set; get; }
public virtual string Comments { set; get; }
public MasterCategory Self { get { return this; } }
}
public class Category
{
public virtual long Id { set; get; }
public virtual MasterCategory MasterCategoryID { set; get; }
public virtual string Code { set; get; }
public virtual string Name { set; get; }
public virtual string Comments { set; get; }
}
Используя Fluent Nhibernate, я заполняю данные в пользовательский класс BaseCollection
для обоих классов, затем устанавливаю коллекцию основных категорий в качестве источника данных для DatagridviewComboBoxColumn.
Далее я устанавливаю коллекцию категорий в качестве источника данных для Datagridview. Когда мне это нравится, Datagridview выдает эту ошибку .
Когда я изменяю коллекцию категорий, каждое значение свойства MastercategoryID данных, в которое входит значение источника данных основной категории, работает нормально. Но то, что находится в свойстве MastercategoryID, поступает из базы данных через NHibernate.
Я сравнил значения источника данных DatagridviewComboBox и значение свойства MastercategoryID. Там нет разницы
MasterCategoryCollection m = new MasterCategoryCollection();
m.Select("where CompanyInfoID.Id = " + ((CompanyInfo)GlobalValues.Company).Id);
CategoryCollection c = new CategoryCollection();
c.Select("where MasterCategoryID.CompanyInfoID.Id = " + ((CompanyInfo)GlobalValues.Company).Id);
CategoryCollection ccc = new CategoryCollection();
int ind = 0;
foreach (Category cd in c)
{
ccc.Add(cd);
ind++;
}
var col = new DataGridViewComboBoxColumn
{
DataSource = m,
HeaderText = "Insurance Type",
DataPropertyName = "MasterCategoryID",
DisplayMember = "Name",
ValueMember = "Self",
};
grid.Columns.Add(col);
grid.DataSource = ccc;
panel1.Controls.Add(grid);
Это вызывает ошибку. Мне нужно решение, пожалуйста, кто-нибудь, помогите мне через это