LINQ to SQL - атрибут динамической таблицы - PullRequest
2 голосов
/ 08 апреля 2011

В настоящее время я работаю в платежной системе.Я хочу получить имя таблицы транзакций из конфигурации провайдера для использования в моих запросах LINQ, но понимаю, что следующий пример невозможен:

[Table(Name = Config.TransactionTable)]
public class Transaction : ITransaction
{
   ....
}

Я получаю следующую ошибку во время компиляции, когда я делаю выше:

Аргумент атрибута должен быть выражением константы, выражением typeof или выражением создания массива типа параметра атрибута

. Каков наилучший подход к этой проблеме?используя LINQ to SQL, чтобы получить то, что я хочу, из вопроса?

1 Ответ

0 голосов
/ 08 апреля 2011

Атрибут (TableAttribute) равен sealed, что ограничивает множество параметров; однако LINQ-to-SQL не привязан к модели атрибутов - существуют другие поставщики. В частности, вы можете взглянуть на использование поставщика модели xml и генерацию xml во время выполнения. Это параметр MappingSource в перегруженном конструкторе; типичное использование будет XmlMappingSource.FromXml(...) или аналогичным.

Однако, как правило, довольно редко встречается изменение таблиц ядра во время выполнения. Нечасто, но не без поддержки.

Для справки, неявное значение по умолчанию: AttributeMappingSource.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...