Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • World
  • Users
  • Groups
Skins
  • Light
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
Code Project
  1. Home
  2. General Programming
  3. LINQ
  4. SQL to LINQ Converter

SQL to LINQ Converter

Scheduled Pinned Locked Moved LINQ
csharpdatabaselinqquestion
14 Posts 5 Posters 32 Views 1 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • C Colin Angus Mackay

    iangrech wrote:

    Does anyone know of any SQL to LINQ convertors around?

    Ummm... Why would you want that? I don't know of any converters. And I am trying to figure out why you would want to do such a thing as there may be another solution.

    Upcoming FREE developer events: * Developer Day Scotland Recent blog posts: * Introduction to LINQ to XML (Part 1) - (Part 2) My website | Blog

    L Offline
    L Offline
    Lost User
    wrote on last edited by
    #3

    I am trying to understand LINQ and lambdas. I am trying to write a LINQ statement for SELECT DISTINCT [FieldName] FROM [TableName] ORDER BY [FieldName] where [TableName] is a datatable.

    No trees were killed in the creation of this message. However, many electrons were terribly inconvenienced.

    R 1 Reply Last reply
    0
    • L Lost User

      I am trying to understand LINQ and lambdas. I am trying to write a LINQ statement for SELECT DISTINCT [FieldName] FROM [TableName] ORDER BY [FieldName] where [TableName] is a datatable.

      No trees were killed in the creation of this message. However, many electrons were terribly inconvenienced.

      R Offline
      R Offline
      Roger Alsing 0
      wrote on last edited by
      #4

      First: You can not make it work like you described. You can not make linq operate on "made up" identifiers, the identifiers must exist on an a real class. so "Select distinct Foo" where foo is the name in a datatable wont work. you have to make a property called foo on some sort of object. That applies to both lambdas as delegates and lambdas as expression trees. eg: from row in DS["tablename"] order by row["fieldname"] select row["fieldname"] is valid, but: from row in tablename order by fieldname select fieldname is not.. no matter how much magic you try to do with expression trees. 2nd :) : Ive got a small clone of the Linq to objects engine: http://rogeralsing.com/2008/03/31/linq-to-objects-for-net-2-available/[^] you can always download that and customize it to work for datatables.

      Blog: http://www.rogeralsing.com Projects: http://www.puzzleframework.com

      L 1 Reply Last reply
      0
      • R Roger Alsing 0

        First: You can not make it work like you described. You can not make linq operate on "made up" identifiers, the identifiers must exist on an a real class. so "Select distinct Foo" where foo is the name in a datatable wont work. you have to make a property called foo on some sort of object. That applies to both lambdas as delegates and lambdas as expression trees. eg: from row in DS["tablename"] order by row["fieldname"] select row["fieldname"] is valid, but: from row in tablename order by fieldname select fieldname is not.. no matter how much magic you try to do with expression trees. 2nd :) : Ive got a small clone of the Linq to objects engine: http://rogeralsing.com/2008/03/31/linq-to-objects-for-net-2-available/[^] you can always download that and customize it to work for datatables.

        Blog: http://www.rogeralsing.com Projects: http://www.puzzleframework.com

        L Offline
        L Offline
        Lost User
        wrote on last edited by
        #5

        Hi Roger; Thank you for your reply but maybe I should have explained that what I put in [] is generic, ie:when I say [TableName], in real life [Tablename] will be a real tablename, eg: AccountTransactions Now back to the issue at hand. My problem is recreating this SQL statement as LINQ: SELECT DISTINCT [fieldname] FROM [tablename] ORDER BY [fieldname] I get as far as SELECT DISTINCT [fieldname] FROM [tablename] which translates to (from u in [tablename] select u.[fieldname]).Distinct() but the result is not sorted. I want to include the ORDER BY. Further to this, my o.p. was a request for a tool where I could write a SQL statement and it outputs the relevant LINQ, even if this is as lambda. I have LINQPad but it only does LINQ to SQL, not SQL to LINQ. Tnx Ian

        No trees were killed in the creation of this message. However, many electrons were terribly inconvenienced.

        P 1 Reply Last reply
        0
        • L Lost User

          Hi Roger; Thank you for your reply but maybe I should have explained that what I put in [] is generic, ie:when I say [TableName], in real life [Tablename] will be a real tablename, eg: AccountTransactions Now back to the issue at hand. My problem is recreating this SQL statement as LINQ: SELECT DISTINCT [fieldname] FROM [tablename] ORDER BY [fieldname] I get as far as SELECT DISTINCT [fieldname] FROM [tablename] which translates to (from u in [tablename] select u.[fieldname]).Distinct() but the result is not sorted. I want to include the ORDER BY. Further to this, my o.p. was a request for a tool where I could write a SQL statement and it outputs the relevant LINQ, even if this is as lambda. I have LINQPad but it only does LINQ to SQL, not SQL to LINQ. Tnx Ian

          No trees were killed in the creation of this message. However, many electrons were terribly inconvenienced.

          P Offline
          P Offline
          Pete OHanlon
          wrote on last edited by
          #6

          Well, you could do this as:

          (from u in ctx.tablename orderby ctx.field select ctx.field).Distinct();

          As far as I'm aware, there's no tool that reverses the process, i.e. from Sql to Linq.

          Deja View - the feeling that you've seen this post before.

          My blog | My articles

          L 1 Reply Last reply
          0
          • P Pete OHanlon

            Well, you could do this as:

            (from u in ctx.tablename orderby ctx.field select ctx.field).Distinct();

            As far as I'm aware, there's no tool that reverses the process, i.e. from Sql to Linq.

            Deja View - the feeling that you've seen this post before.

            My blog | My articles

            L Offline
            L Offline
            Lost User
            wrote on last edited by
            #7

            Tried it already. Output is unsorted.

            No trees were killed in the creation of this message. However, many electrons were terribly inconvenienced.

            P 1 Reply Last reply
            0
            • L Lost User

              Tried it already. Output is unsorted.

              No trees were killed in the creation of this message. However, many electrons were terribly inconvenienced.

              P Offline
              P Offline
              Pete OHanlon
              wrote on last edited by
              #8

              Did you try orderby ... ascending?

              Deja View - the feeling that you've seen this post before.

              My blog | My articles

              L 1 Reply Last reply
              0
              • P Pete OHanlon

                Did you try orderby ... ascending?

                Deja View - the feeling that you've seen this post before.

                My blog | My articles

                L Offline
                L Offline
                Lost User
                wrote on last edited by
                #9

                Yeppp. I even tried typing it while sacrificing a virgin (packet of orange juice).

                No trees were killed in the creation of this message. However, many electrons were terribly inconvenienced.

                P 1 Reply Last reply
                0
                • L Lost User

                  Yeppp. I even tried typing it while sacrificing a virgin (packet of orange juice).

                  No trees were killed in the creation of this message. However, many electrons were terribly inconvenienced.

                  P Offline
                  P Offline
                  Pete OHanlon
                  wrote on last edited by
                  #10

                  Hmmm. Not sure what to suggest here, as this works OK for me. It might be worth SQL Profiling your app to see what's hitting the database.

                  Deja View - the feeling that you've seen this post before.

                  My blog | My articles

                  L 1 Reply Last reply
                  0
                  • P Pete OHanlon

                    Hmmm. Not sure what to suggest here, as this works OK for me. It might be worth SQL Profiling your app to see what's hitting the database.

                    Deja View - the feeling that you've seen this post before.

                    My blog | My articles

                    L Offline
                    L Offline
                    Lost User
                    wrote on last edited by
                    #11

                    Using LINQPad, SQL Profiler shows that only a simple select (SELECT DISTINCT...FROM...) is passed to SQL Server, without the ORDER BY clause. I will try it from within an application later on. Tnx Ian

                    No trees were killed in the creation of this message. However, many electrons were terribly inconvenienced.

                    P 1 Reply Last reply
                    0
                    • L Lost User

                      Using LINQPad, SQL Profiler shows that only a simple select (SELECT DISTINCT...FROM...) is passed to SQL Server, without the ORDER BY clause. I will try it from within an application later on. Tnx Ian

                      No trees were killed in the creation of this message. However, many electrons were terribly inconvenienced.

                      P Offline
                      P Offline
                      Pete OHanlon
                      wrote on last edited by
                      #12

                      Hmm. Using LinqPAD, I ran the following query and it worked OK until I put the Distinct query in.

                      (from p in Customers
                      orderby p.Name
                      select new {p.ID, p.Name})

                      This produced the following SQL:

                      SELECT [t0].[ID], [t0].[Name]
                      FROM [Customer] AS [t0]
                      ORDER BY [t0].[Name]

                      As soon as I put the Distinct() in, I get:

                      SELECT DISTINCT [t0].[ID], [t0].[Name]
                      FROM [Customer] AS [t0]

                      which would seem to be a bug.

                      Deja View - the feeling that you've seen this post before.

                      My blog | My articles

                      L 1 Reply Last reply
                      0
                      • P Pete OHanlon

                        Hmm. Using LinqPAD, I ran the following query and it worked OK until I put the Distinct query in.

                        (from p in Customers
                        orderby p.Name
                        select new {p.ID, p.Name})

                        This produced the following SQL:

                        SELECT [t0].[ID], [t0].[Name]
                        FROM [Customer] AS [t0]
                        ORDER BY [t0].[Name]

                        As soon as I put the Distinct() in, I get:

                        SELECT DISTINCT [t0].[ID], [t0].[Name]
                        FROM [Customer] AS [t0]

                        which would seem to be a bug.

                        Deja View - the feeling that you've seen this post before.

                        My blog | My articles

                        L Offline
                        L Offline
                        Lost User
                        wrote on last edited by
                        #13

                        Worked in code. Apparently LINQPad mishandles some queries then. So we agree: LINQPad developer will be tried, found guilty, tortured and executed. :) Tnx for your help.

                        No trees were killed in the creation of this message. However, many electrons were terribly inconvenienced.

                        modified on Tuesday, April 29, 2008 9:55 AM

                        1 Reply Last reply
                        0
                        • L Lost User

                          Hi All; Does anyone know of any SQL to LINQ convertors around? Tnx Ian

                          No trees were killed in the creation of this message. However, many electrons were terribly inconvenienced.

                          U Offline
                          U Offline
                          User 4088332
                          wrote on last edited by
                          #14

                          SQL to LINQ converter is available at www.sqltolinq.com

                          1 Reply Last reply
                          0
                          Reply
                          • Reply as topic
                          Log in to reply
                          • Oldest to Newest
                          • Newest to Oldest
                          • Most Votes


                          • Login

                          • Don't have an account? Register

                          • Login or register to search.
                          • First post
                            Last post
                          0
                          • Categories
                          • Recent
                          • Tags
                          • Popular
                          • World
                          • Users
                          • Groups