列名无效.[节点名称(如果有)= t0,列名=版本]

Har*_*san 8 c# sql-server-ce linq-to-sql windows-phone-7.1

我在尝试SQLCE在Windows Phone Mango应用程序中查询数据库时遇到问题.

我执行时遇到异常

foreach (var item in myDataContext.MyTable.Select(item => item))

The column name is not valid. [ Node name (if any) = t0,Column name = version ]

奇怪的是,当我基于任何单个列执行查询时,它工作正常

foreach (var item in myDataContext.MyTable.Select(item => item.SomeColumn))

知道这里有什么不对吗?

Har*_*san 5

我安装了LINQ to SQL Debug Visualizer,以找出在场景后面生成的确切查询

{SELECT [t0].[version], [t0].[ID], [t0].[Volume], ... similarly rest of the columns FROM [MyTable] AS [t0]

这很奇怪,因为我的表中没有版本列(曾经).我查看了我的模型,发现此列已定义

[Column(IsVersion = true)]
private Binary version;
Run Code Online (Sandbox Code Playgroud)

我通过注释掉这两行删除了列并重新运行了应用程序.新生成的SQL没有任何version列,我的查询工作正常.

SQLCEMangoCodeGenerator用于生成LINQ to SQL类.我猜错误是在这个工具中,因为它生成了一个额外的列,我没有在我的表中