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

2024-01-10

我在尝试查询时遇到问题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))

知道这里可能出了什么问题吗?


我安装了LINQ to SQL 调试可视化工具 http://weblogs.asp.net/scottgu/archive/2007/07/31/linq-to-sql-debug-visualizer.aspx找出幕后到底生成了什么查询,它是

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

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

[Column(IsVersion = true)]
private Binary version;

我通过注释掉这两行来删除列并重新运行应用程序。新生成的SQL没有任何version列和我的查询运行良好。

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

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

列名称无效。 [ 节点名称(如果有) = t0,列名称 = 版本 ] 的相关文章

随机推荐