Я выполнил несколько проектов MVC, работающих в настоящее время с L2SQL под капотом, и нашел, что им очень приятно пользоваться. Сейчас я начинаю новый проект и решил написать его, используя EF и L2EF, учитывая ранее цитированные статьи, провозглашающие смерть L2SQL. Спустя всего пару дней я решил вернуться к L2SQL. Простые вещи, такие как необходимость установки внешних ключей для вставок с использованием либо ужасного синтаксиса, показанного ниже, либо ненужные поиски, потрясли меня.
foo.Foreign_TypeReference.EntityKey =
new EntityKey("DataContextName.Foreign_Type", "Foreign_Type_Id", ForeignTypeId);
Вместо:
foo.Foreign_Type_Id = ForeignTypeId;
Я не думаю, что будет очень трудно перенести L2SQL на будущую версию EF, поскольку L2SQL имеет подмножество функциональных возможностей (хотя и лучше реализованных) , Несколько вещей, которые есть в L2SQL, которых нет в L2EF, например Single () и SingleOrDefault (), можно перенести в EF, создав несколько методов расширения. Я думаю, что потребуется гораздо меньше времени для запуска системы с использованием L2SQL, а затем перенести ее позже, когда EF не так вонючий.
An ampersand before a function name means the function will return a reference to a variable instead of the value.
Returning by reference is useful when you want to use a function to find to which variable a reference should be bound. Do not use return-by-reference to increase performance. The engine will automatically optimize this on its own. Only return references when you have a valid technical reason to do so.
See Returning References.
Как уже упоминалось, он возвращает ссылку. В PHP 4 объекты присваивались по значению, как и любое другое значение. Это в высшей степени неинтуитивно и противоречит тому, как работает большинство других языков.
Чтобы обойти проблему, ссылки использовались для переменных, указывающих на объекты. В PHP 5 ссылки используются очень редко. Я предполагаю, что это устаревший код или код, пытающийся сохранить обратную совместимость с PHP 4.