【问题标题】:Trouble with SQL CE and LinqSQL CE 和 Linq 的问题
【发布时间】:2009-08-21 18:28:46
【问题描述】:

我正在尝试让我的程序使用 LocalDataCache。我正在使用 Linq。

if (tempVehicle.VehicleFinancialInfo[0].askingPrice != null)
{
    // do stuff
}

askingPrice 是一个(十进制?),因为 VehicleFinancialInfo 是一个 linq 实体集。

上述 if 测试在 SQL Express 上运行,但它在 SQL Compact Edition 中使应用程序崩溃。它给出了错误“指定的演员表无效”。有谁知道发生了什么。我需要该程序同时使用快速版和精简版。温柔点,我是 SQL 和 Linq 的菜鸟

【问题讨论】:

  • 你确定这正是你得到异常的地方吗?
  • 我想是的,这是来自错误的堆栈跟踪的片段。 System.InvalidCastException 未处理 Message=Specified cast 无效。 Source=System.Data.SqlServerCe StackTrace:在 System.Data.SqlServerCe.SqlCeDataReader.GetDateTime(Int32 序数) 在 Read_VehicleFinancialInfo(ObjectMaterializer1 ) at System.Data.Linq.SqlClient.ObjectReaderCompiler.ObjectReader2.MoveNext() 在 System.Data.Linq.EntitySet1.Load() at System.Data.Linq.EntitySet1.get_Item( Int32 索引)在 Vis2.FrmVehicleData..ctor(Vehicle _car, FrmMain Main)
  • 看起来有些东西正试图转换为 DateTime() 确保您的 SQL 表在 SQL Express 和 SQL Compact 中完全相同。您可能缺少列或列的顺序不同。
  • 谢谢.. 我下班回家再看看。本地数据库是使用本地数据库缓存向导生成的。我希望它能正确复制快递数据库。

标签: c# sql linq


【解决方案1】:

糟糕......当 LocalDataCache 向导创建 .sdf 数据库时,它创建了日期时间列作为 nchar......感谢 Stan R。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-09-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-10-10
    相关资源
    最近更新 更多