먼저 Ok, 모든 사람이 내 첫 번째 게시물입니다.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은 다른 프로그램에 테이블 쿼리를 만들 복사가 나는 등 INT, 플로트, 카운트가 예상대로했다 얼마나 많은 시간을 계산되었다. 그런 다음 LINQ 매핑을 사용하여이 작업을 반복했는데 일치하는 개수가 있으므로 매핑이 잘못되었다고 생각하지 않습니다.
편집 2 : 난 그냥 그렇게
var codes = (from c in App.BonusDatabase.tbRawData
select c.CODE).ToList();
이 잘 작동처럼 단지 한 분야가 아닌 모든 것을 선택하기 위해 위의 코드를 수정하지만 난 다음 다른 필드
var codes = (from c in App.BonusDatabase.tbRawData
select c.PPH).ToList();
I로 변경하는 경우 오류가 발생했습니다. 이게 바로 연주되는 것입니까? 그렇다면 SQL 데이터베이스와 매핑에서 float로 선언 된 것과 같은 문제가있을 수 있습니다.
hhhhhhmmmmmm 내가보기에는 테이블이 100 개가 넘는 열을 찾으려고하면 성가 시게됩니다. – Gazlar