Правильный синтаксис будет выглядеть примерно так:
#define MY_MACRO(ident) \
int ident
int main() {
MY_MACRO(test);
test =42;
return test;
}
Однако, вы рассматривали typedefs ? В отличие от typedef, макросы считаются плохой практикой.
Это - в значительной степени мое представление. Посмотрите мой предыдущий ответ здесь. Этот другой вопрос не был конкретно о проблемах в EF, но да: это имеет справедливое небольшое количество незначительные сбои. Например (в дополнение к Вашим существующим опциям):
Expression.Invoke
(снова использующий деревья выражений для формирования более сложное выражение)LINQ-SQL обрабатывает обоих очень хорошо...
Я думаю, что это зависит от платформы приложений. Когда мои команды намереваются создавать новое приложение ASP.net, мы хотели пойти с EF..., но после проигрывания вокруг с ним некоторое время, мы пошли с Linq-SQL. В веб-среде, управляя L2S datacontext было намного легче. Кроме того, нам понравилось это, объекты L2S выставляют исходное поле Id (например, EmployeeTypeId), в отличие от EF, которому только выставили бы дочерний объект. В веб-среде большом количестве времен Вам действительно не нужна та дополнительная информация, идентификатор достаточно, потому что это - ссылка на выпадающий список, который был уже загружен (и вероятно кэшировался).
L2S является более сформировавшимся для того, для чего это сделано.
И я все еще рассмотрю EF как БЕТУ realease.
существует партия дискуссии по поводу EF, можно найти намного больше в связанных вопросах.
Я соглашаюсь. Существует слишком много ошибок и недостатков дизайна в Платформе Объекта v1 (версия .net 3.5 SP1) для создания этого применимым в реальной разработке. EFv4 выглядит более многообещающим хотя...
Я услышал, что L2S быстро идет путем дронта. Существует определенная болтовня о перемещении к открытому исходному коду - но группа ADO.NET в Microsoft планирует продвинуть все их усилия к EF...
Печальный также, потому что я нахожу Linq2SQL чрезвычайно легкий работать с и мысль о портировании всего моего кода, делает меня немного больным.