我有一个通用组成员表,其中包含“组类型”的GUID和“引用对象”的GUID。例如,如果我有一个客户表(每个都有一个GUID),我可以通过创建一个组GUID将它们分组到“已经付款”,并在我的“组成员表”中通过各自的GUID引用每个客户。这允许在我们扩展时将任何类型的组添加到模型中(不添加额外的表)。
这是问题所在。我在实体中创建了一个子查询,以便过滤特定组的通用组成员表以及该组中有哪些“项目”;像这样:
partial void ElementsNotMemberOfGroup_PreprocessQuery(int? UniversalGroupTypeIDParameter, int? UniversalGroupsIDParameter, ref IQueryable<UniversalGroupMember> query)
{
query = query.Where(x => x.UniversalGroup.UniversalGroupType.UniversalGroupTypeID == UniversalGroupTypeIDParameter);
query = query.Where(x => x.UniversalGroup.UniversalGroupsID != UniversalGroupsIDParameter);
}
这将返回组中引用对象的GUID,但是对于没用的用户。我需要在运行时在GUID上加入此表和我的customers表,以便我可以提取客户信息并显示它。
任何想法?
答案 0 :(得分:0)
LightSwitch并非真正考虑到这种情况而创建。当您在表之间创建“相关”的表之间的关系时,LightSwitch使您的工作变得非常轻松。执行此操作时,实体之间永远不需要手动连接。
虽然可能与您所描述的内容类似(请参阅下面的链接),但实现它还需要做更多工作,在我看来这不值得额外的麻烦。不仅如此,而且正如您所发现的那样,它甚至使最简单的操作变得复杂。
从本质上讲,你正在反对 LightSwitch,而不是 。我的建议是,如果您真的必须进行此类手动优化,那么LightSwitch可能不是您使用的最佳产品。
Beth Massi有一篇博客文章Using Different Edit Screens Based on Record Types (Table Inheritance),这不是你正在做的,但如果你决定仍然使用LightSwitch作为你的项目,它可能会给你一些想法。