我一直得到这个异常,而使用Andrew Davey的BindingListView (http://blw.sourceforge.net/)。我正在使用ServiceStack OrmLite。我的对象是这样的:
public class Category
{
[PrimaryKey, AutoIncrement]
public int Id { get; set; }
[StringLength(50)]
public string Name { get; set; }
}
和
public class Product
{
[PrimaryKey, AutoIncrement]
public int Id { get; set; }
[References(typeof(Category))]
public int CategoryId { get; set; }
public int ProductTypeId { get; set; }
[StringLength(50)]
public string Name { get; set; }
[Reference]
public Category Category { get; set; }
}
我不知道如何传递这个异常。
编辑
异常发生在以下代码的第一行:
var products = dbConn.Select<Product>().OrderBy(p => p.Name).ToList();
var productsView = new BindingListView<Product>(products);
dgProducts.DataSource = productsView;
你有
product.Name
product.Category.Name
product.Id
product.Category.Id
当lib做反射获取Property时,它得到2 "Name"
code不知道你想要哪一个。产品。Product.Category.Name.
tldr:简单的修复是改变其中一个属性名称
public class Category
{
public int cId { get; set; }
public string cName { get; set; }
}
public class Product
{
[PrimaryKey, AutoIncrement]
public int Id { get; set; }
[References(typeof(Category))]
public int CategoryId { get; set; }
public int ProductTypeId { get; set; }
[StringLength(50)]
public string Name { get; set; }
[Reference]
public Category Category { get; set; }
}