Linq Query - Strange Outcome

Hi guys! Can anyone help with this?
I have a sql database in my StreamingAssets folder and I am trying to retrieve the data using linq.
Here is my code:

using UnityEngine;
using System.Linq;


public class EnglishScript : MonoBehaviour
{
    void Start()
    {
        // Connect to database
        var ds = new DataService("English.db");

        // Retrieve data
        var linqQuery = from Questions in "English.db"
                        select Questions;

        string sqlQuery = linqQuery.ToString();
        Debug.Log(sqlQuery);
    }  
}

The problem is that instead of data, I get this in my console:

System.Linq.Enumerable+<CreateSelectIterator>c__Iterator10`2[System.Char,System.Char]
UnityEngine.Debug:Log(Object)
EnglishScript:Start() (at Assets/Scripts/EnglishScript.cs:21)

Any ideas what I am doing wrong? Many thanks for any help!:slight_smile:

I have not that much experience with Linq, so I can’t help you with most of that (Except to tell you to read the docs :wink:

But for the reason as to why it logs that string. ‘lingQuery’ is of type System.Collections.Generic.IEnumerable. And what you see is how IEnumerable implemented (or didn’t) the ToString method, all it does is print the object’s type, not the object’s content.

The Content of your ienumerable is a char array containing each char of “English.db” btw. So I believe you don’t want the string “English.db” there, but actually a reference to the collection (See docs, I have no experience with that)

As how you can log the content of your linqQuery, this should work:

foreach (var i in linqQuery)
{
    Debug.Log(i);
}