所以我有一个Winforms程序设置为有一个带有datagridview的表单负责显示诉讼事项。问题只是一个包含ID,描述,一些日期,然后是一些集合(导航属性)的类,例如:
public int MatterID
public string Description
public DateTime? DateFiled
public ICollection<Contact> Plaintiffs
public ICollection<Contact> Attorneys
现在问题就出现了:
用户可以查看不同的事项集; 所有事项,开放事项,封闭事项,搜索事项(基于搜索标准),与特定联系人相关的事项等(更多)
这个MatterViewer表单有一个datagridview,负责显示事项并在事情更新时刷新数据。 (例如,用户可以右键单击datagridview中的Matter并进行编辑,然后需要刷新Datagridview中的事项。)
为了实现这一点,我目前拥有接受查询字符串的表单构造函数,以便我可以访问用于获取这些特定事项的查询,并根据需要使用它来刷新特定数据:
public FormViewMatters(string matterQueryString, string dataSetName = null)
{
//Code here
}
如果我只是将一个事项列表传递给表单,那么我将只能刷新该列表中的项目,而不是根据查询刷新所有可能的事项。
但是,使用查询字符串会限制我延迟加载导航属性。我目前需要急于加载一些属性,我无法这样做。
那么一般来说刷新特定数据(包括导航属性)的最佳方法是什么?