創建一個新的匿名類型Lambda表達式我想調用一個期望的方法的參數是這樣的:在運行時
Expression<Func<sometype, 'a>> expr
我需要構建在運行時,這個參數,因爲我不知道是什麼匿名類型看起來像以前一樣;它可以有字段的任何金額:
x => new { a=x.a, b=x.b, c=x.c, etc... }
我可以在具有相同的「簽名」運行時創建一個類型(是正確的詞來形容?)作爲期望的匿名類型,但問題是:我該如何在運行時構造這個lambda表達式?特別是Expression.New讓我煩惱,因爲我需要將constructorInfo傳遞給它,我必須從現有類型(它確實可以是匿名類型,但我不能在運行時創建匿名類型)一種方法來做到這一點?)。
更新(如意見要求某些情況下)
我想調用的方法是:
DependentNavigationPropertyConfiguration.HasForeignKey<TKey>(Expression<Func<TDependentEntityType, TKey>> foreignKeyExpression)
我想這樣做是自動進行導航屬性的原因從某個基類繼承的實體在外鍵中包含該基類的鍵。因爲一個實體可以有多個任何類型的鍵字段,所以只有在運行時才知道TKey類型。
什麼是你的情況的輸入?你是從運行時基於字符串的數據構造它嗎? –
在運行時,會從'sometype'中選擇一些字段。我需要從中建立表達。匿名類型的字段的名稱與從'sometype'中選擇的字段相同。 – EPLKleijntjens
爲什麼downvote?請解釋一下,以便我有一天能學會。 – EPLKleijntjens