I am facing issue while trying to query SQLCE
database in my Windows Phone Mango application.
I get exception when I execute
foreach (var item in myDataContext.MyTable.Select(item => item))
The column name is not valid. [ Node name (if any) = t0,Column name = version ]
Strangely, when I execute query based on any individual column, it works fine
foreach (var item in myDataContext.MyTable.Select(item => item.SomeColumn))
Any idea what could be wrong here?
I installed LINQ to SQL Debug Visualizer to find out what query exactly is being generated behind the scene and it was
{SELECT [t0].[version], [t0].[ID], [t0].[Volume], ... similarly rest of the columns
FROM [MyTable] AS [t0]
This was strange because I didn't had version column in my table (ever). I looked into my model and I found this column defined
[Column(IsVersion = true)]
private Binary version;
I removed column by commenting out these two lines and re-ran the app. Newly generated SQL didn't had any version
column and my query worked fine.
I am using SQLCEMangoCodeGenerator
for generating LINQ to SQL classes. I guess error is in this tool because of which it generated an extra column which I didn't have in my table
I was having the same issue with the "SQLCEMangoCodeGenerator" tool.
I started to use the "SQL Server Compact Toolbox" tool and I haven't had any issues: http://visualstudiogallery.msdn.microsoft.com/0e313dfd-be80-4afb-b5e9-6e74d369f7a1/
(search for "NEW: DataContext" on the above website for a screen shot. Once you've installed the Extension, click the "SQL Server Compact Toolbox" in the Tools menu)
I solved this issue by removing the whole database and recreate it.
Obivously, this happens, if you have older version of table in database than you want to use, thus that column does not exist in that table.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With