为了这个例子,我有以下实体:
public class CustomerType
{
public ItemType ItemType = ItemType.CustomerType;
public int Id;
public string Description;
}
public class Title
{
public ItemType ItemType = ItemType.Title;
public int Id;
public string Name;
}
public class PaymentMethod
{
public ItemType ItemType = ItemType.PaymentMethod;
public int Id;
public string Method;
}
public class Customer
{
public ItemType ItemType = ItemType.Customer;
public int Id;
public string Name;
public CustomerType CustomerType;
public Title Title;
public PaymentMethod PaymentMethod;
}
我使用EF6并且启用了延迟加载,因此当我检索客户时,导航属性也会被填充。现在,在winforms客户端中,在客户表单中,我有一个自定义控件,应该显示3个导航属性的描述。
这里的问题是每个实体都可以使用不同的属性作为描述(例如,CustomerType.Description,Title.Name,PaymentMethod.Method)。
有没有办法将自定义控件绑定到该特定对象?有没有比为每个实体类型实现switch()语句更好的方法,例如:
switch(typeof(objEntity))
{
case "CustomerType": textBoxDescription.Text = objEntity.Description;
case "Title": textBoxDescription.Text = objEntity.Name;
//etc...
}
也许使用反射或某种界面?