2013-03-28 119 views
2

Hy there,动态LINQ语言功能

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

,我有以下特性填补了LINQ查询:

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

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

我该如何解决这个问题?

回答

-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); 
} 
+0

有了您的解决方案,我得到以下错误: “表达式树可能不包含动态操作“ – user2219609

+0

我期待一个字符串,所以我改变了你的代码返回一个字符串,它工作正常! Tks – user2219609

+0

现在我需要的东西,如果选择列(基于currentLanguage)没有值,选择默认列,在这种情况下,英语。 – user2219609