当前位置: 首页 > 编程语言 > C#

无效的列名称,分享

时间:2023-04-11 10:49:35 C#

栏目名称无效。我在尝试在我的WindowsPhoneMango应用程序中查询SQLCE数据库时遇到问题。执行foreach(variteminmyDataContext.MyTable.Select(item=>item))时出现异常列名无效。[Nodename(ifany)=t0,Columnname=version]奇怪的是,当我基于任何单个列foreach执行查询时它工作正常(myDataContext.MyTable.Select(item=>item.SomeColumn)中的varitem)知道这里出了什么问题吗?我安装了LINQtoSQLDebugVisualizer以找出幕后生成的确切查询{SELECT[t0].[version],[t0].[ID],[t0].[Volume],...columnsFROM[MyTable]AS[t0]这很奇怪,因为我的表中没有版本列(曾经)。我查看了我的模型,发现该列定义为[Column(IsVersion=true)]privateBinaryversion;我通过注释掉这两行并重新运行应用程序来删除该列。新生成的SQL没有任何版本列,我的查询工作正常。我正在使用SQLCEMangoCodeGenerator生成LINQtoSQL类。我猜错误出在这个工具中,因为它生成了一个我的表中没有的额外列我在“SQLCEMangoCodeGenerator”工具中遇到了同样的问题。我开始使用“SQLServerCompactToolbox”工具,没有遇到任何问题:http://visualstudiogallery.msdn.microsoft.com/0e313dfd-be80-4afb-b5e9-6e74d369f7a1/(在上面的网站上搜索“NEW:DataContext”截图。安装扩展后,点击“工具”菜单中的“SQLServerCompactToolbox”)我通过删除整个数据库并重新创建来解决了这个问题。显然,如果数据库中的表版本比您想要使用的版本旧,就会发生这种情况,因此该表中不存在该列。使用SQLServerManagmentStudio在SqlCE.sdf中运行:DELETEFROM[User]WHERE[User].[UserName]="zz"无效列名的类似问题,但更改了撇号的引号:DELETEFROM[User]WHERE[User].[UserName]='zz'成功了!以上是C#学习教程:列名无效。如果所有分享的内容对你有用,需要进一步了解C#学习教程,希望大家多多关注。本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处: