Coppermill
Coppermill

Reputation: 6804

Convert SQL to LINQ to SQL

I'm having great trouble in converting the following SQL to LINQ to SQL, any one able to help out?

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

Or even better anyone know of an automatic SQl to LINQ converter?

Upvotes: 7

Views: 56895

Answers (4)

Omzig
Omzig

Reputation: 921

To go from LINQ -> SQL try this:

        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.

Upvotes: -2

user1365315
user1365315

Reputation: 9

linqpad don't convert.

free converter

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

Note: Run with SQLite in Windows, not WindowsPhone necesary

Upvotes: 0

Mubashar
Mubashar

Reputation: 12668

I tried linqpad but its not for converting SQL to linq but its actual use is to replace sql with linq to query your database

however I think linqer is the right choice if you like to convert SQL query to LINQ. you can download it from their official site.

http://www.sqltolinq.com/

Upvotes: 2

Adrian Grigore
Adrian Grigore

Reputation: 33318

See this existing thread.

If you decide to do it by hand, Linqpad should be useful.

Upvotes: 5

Related Questions