![]() |
1
0
你好像在问几个问题。首先,当您询问将查询放在何处时,这实际上取决于您所遵循的设计。在很多情况下,存储库模式似乎是数据访问的合理想法,但我不知道它在您的情况下是否合适。例如,您已经在其他地方使用存储库了吗?
如果在林,请看看这个问题的答案。它们可能适用于: Pivot data using LINQ 如果是在SQL中,并且假设您使用的是sqlserver,那么您确实可以使用groupby或pivot操作符(如果您运行的是最新版本)来执行pivot。但是,这两种情况都不支持动态数量的语言—必须显式声明每个语言的请求列。像这样:
因为Pivot操作符不支持动态语句,比如扩展参数中的子查询(英语,法语),所以我不知道如何处理泛型。希望这至少能澄清你的方向。 |
![]() |
2
0
产生结果的简单查询(假设LangID1=法语,LangID2=英语):
在哪种情况下你需要多语言能力?如果您在运行时只需要两种语言,我建议您查询这两种语言并构建一个Tuple(新的Tuple类随.NET4.0提供),其中第一个泛型参数是lang id,其他参数是特定语言。您可以在CategoryName实体上构建一个分部类,该实体包含一个函数,该函数为您提供那些字典/元组。您可以很容易地将上面的查询转换成LINQ。 简 |