2013-03-28 151 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