动态LINQ语言函数

时间:2013-03-28 12:14:11

标签: .net linq

那里,

这是我在stackoverflow中的第一个问题,希望你能帮助我。

我在linq查询中填写了以下属性:

FieldLabel = (currentLanguage == "de" ? forum.language.German :
         currentLanguage == "fr" ? forum.language.French :
         currentLanguage == "en" ? forum.language.English :
         forum.language.English)

我需要这是通用的,因为我的“论坛”实体可以是其他类似“post”的东西,它有一些语言列(德语,法语,英语)等。 我想要一些接收实体类型的动态方法,比如“forum”或“post”或其他任何具有列语言的方法,并根据链接的If返回选择列。

我该如何解决这个问题?

1 个答案:

答案 0 :(得分:-1)

如果您使用的是.NET 4.0或更高版本且所有实体都具有“语言”属性,则可以使用dynamic关键字:

private dynamic GetLanguage(String currentLanguage, dynamic entity)
{
    return (currentLanguage == "de" ? entity.language.German :
     currentLanguage == "fr" ? entity.language.French :
     currentLanguage == "en" ? entity.language.English :
     entity.language.English);
}