确定首先,嗨,每一个这是我的第一篇文章。LINQ从SQL Server CE中选择:指定的演员表无效
现在,我已经创建了一个SQLCE数据库,创建了数据上下文和所有映射,并成功地用数据加载填充了数据库。到目前为止很好,现在如果我想检索数据,我会遇到问题。
代码获取数据
var codes = (from c in App.BonusDatabase.tbRawData
select c).ToList();
运行,我获得指定的转换无效。我猜测它有一个不喜欢的价值,我怎么才能找到它的价值?
at System.Data.SqlServerCe.SqlCeDataReader.GetFloat(Int32 ordinal)
at Read_RAW(ObjectMaterializer`1)
at System.Data.Linq.SqlClient.ObjectReaderCompiler.ObjectReader`2.MoveNext()
at System.Collections.Generic.List`1..ctor(IEnumerable`1 collection)
at System.Linq.Enumerable.ToList[TSource](IEnumerable`1 source)
at BAT.Bonus.BonusRun(Int32 Week) in Bonus.cs:line 36
at BAT.Bonus.BonusRun() in Bonus.cs:line 25
at BAT.winMain.worker_DoWork(Object sender, DoWorkEventArgs e) in winMain.xaml.cs:line 91
at System.ComponentModel.BackgroundWorker.OnDoWork(DoWorkEventArgs e)
at System.ComponentModel.BackgroundWorker.WorkerThreadStart(Object argument)
编辑:好一个骗子我复制的SQL创建表的查询到另一个程序,并得到它算多少次,我有整型,浮点等不出所料计数。然后我用LINQ映射重复了这一点,它有一个匹配的计数,所以我不认为映射是错误的。
编辑2: 我只是修改了上面的代码只选择1场,而不是一切都像这样
var codes = (from c in App.BonusDatabase.tbRawData
select c.CODE).ToList();
这工作正常,但如果我然后换另一场
var codes = (from c in App.BonusDatabase.tbRawData
select c.PPH).ToList();
我得到错误。那么这就是那个玩的?如果是这样,问题可能是SQL数据库和我的映射中声明为float的问题
hhhhhhmmmmmm这将是恼人的寻找,我看着有超过100列的表。 – Gazlar