0

我有一个通用组成员表,其中包含“组类型”的 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 上加入此表和我的客户表,以便我可以提取客户信息并显示它。

有任何想法吗?

4

1 回答 1

0

LightSwitch 并不是真正考虑到这种情况而创建的。当您在“相关”的表之间创建关系时,LightSwitch 使事情变得非常容易。当你这样做时,你永远不需要实体之间的手动连接。

虽然可以类似于您所描述的事情(请参阅下面的链接),但要实现它还有很多工作要做,而且在我看来,这并不值得额外的麻烦。不仅如此,而且正如您所发现的,即使是最简单的操作也会变得复杂。

本质上,您是在对抗LightSwitch,而不是使用它。我给你的建议是,如果你真的必须做这种类型的手动优化,那么 LightSwitch 可能不是最适合你使用的产品。

Beth Massi 有一篇博客文章,使用基于记录类型的不同编辑屏幕(表继承),这并不是您正在做的事情,但如果您决定仍将 LightSwitch 用于您的项目,它可能会给您一些想法。

于 2013-08-30T02:51:07.317 回答