Конвертировать SQL в LINQ to SQL - PullRequest
6 голосов
/ 27 августа 2009

У меня большие проблемы с преобразованием следующего SQL в LINQ в SQL, кто-нибудь сможет помочь?

SELECT     dbo.ExpensesGroup.ExpenseGroupId, dbo.ExpensesGroup.Title, SUM(dbo.Expenses.Amount) AS TotalAmount, MAX(dbo.Expenses.DateLastTickled) 
                      AS LastTickledDate, MAX(dbo.ExpensesGroup.DateTime) AS Date, Username
FROM         dbo.Expenses INNER JOIN
                      dbo.ExpensesGroup ON dbo.Expenses.ExpenseId = dbo.ExpensesGroup.ExpensesId
WHERE     dbo.Expenses.Status = 'AwaitingApproval' or dbo.Expenses.Status = 'AwaitingApprovelGrouping'
GROUP BY dbo.ExpensesGroup.ExpenseGroupId, dbo.ExpensesGroup.Title, dbo.Expenses.Username
ORDER BY MAX(dbo.ExpensesGroup.DateTime) DESC, dbo.ExpensesGroup.Title

Или еще лучше кто-нибудь знает об автоматическом конвертере SQl в LINQ?

Ответы [ 4 ]

5 голосов
/ 27 августа 2009

См. этот существующий поток.

Если вы решите сделать это вручную, Linqpad будет полезен.

1 голос
/ 30 апреля 2012

linqpad не конвертируется.

бесплатный конвертер

http://windowsphone.interoperabilitybridges.com/articles/sql-to-linq-converter

Примечание. Запускать с SQLite в Windows, а не в WindowsPhone необходимо

1 голос
/ 25 апреля 2012

Я пробовал linqpad, но он не предназначен для преобразования SQL в linq, но его реальное использование - заменить sql на linq для запроса вашей базы данных

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

http://www.sqltolinq.com/

0 голосов
/ 23 ноября 2012

Чтобы перейти из LINQ -> SQL, попробуйте это:

        var db = new DBModelDataContext();
        StringBuilder sb = new StringBuilder();
        StringWriter sw = new StringWriter(sb);
        db.Log = sw; //set the writer

        var items = (from rec in db.Table1
                     select rec).ToList();

        var sql = sb.ToString(); //here is the SQL from LINQ.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...