It expects IEnumerable. Helps says: Macro expression (without macro brackets). The result of the expression should be an enumerable object whose items will be used to fill the list. For example: CurrentUser.PurchasedProducts.DisplayNames
.
Try:
TopicsInfoProvider.GetTopics().Columns("TopicsID", "TopicName").AsEnumerable()
or
TopicsInfoProvider.GetTopics().Columns("TopicName").AsEnumerable()
Dont forget to import linq namespace.
If this doesnt work you may switch to List of Options and try to macro directly there:
{%TopicsInfoProvider.GetTopics().Columns("TopicsID", "TopicName").AsEnumerable()
.Select(t => t.TopicID.ToString() + ";" + t.TopicName + "\n" )|(identity)GlobalAdministrator%}
and it works.
P.S. Is there a reason why you dont want to simply query your Topic table?