CoolStorage字段不等于过滤器

时间:2012-03-02 22:12:24

标签: sqlite windows-phone-7 coolstorage

我正在开发一个带有SQLite本地数据库的Windows Phone 7应用程序,我已经坚持了一下。

我定义了几个类,每个类都有一个映射设置,我希望检索带有一些过滤的列表。我找到了很多例子,如何检查相等的值,但没有检查不相等的检查。

CSParameterCollection parameters = new CSParameterCollection();
        parameters.Add("@CurrentDate", currentDate);
        parameters.Add("@DirectionId", intVisszaut);
CSList<Trip> RouteTrips = Route.Trips.FilteredBy("Services.StartDate <= @CurrentDate and Services.EndDate >= @CurrentDate and Services." + DayOfWeek.ToString() + " = 1 and DirectionId = @DirectionId", parameters);

此过滤器没有任何问题,但是当我使用以下内容更新它时,它会失败:

(Services.CalendarDates.Date!= @CurrentDate and Services.CalendarDates.Date.ExceptionType!= 2)

CSParameterCollection parameters = new CSParameterCollection();
        parameters.Add("@CurrentDate", currentDate);
        parameters.Add("@DirectionId", intVisszaut);
CSList<Trip> RouteTrips = Route.Trips.FilteredBy("(Services.CalendarDates.Date != @CurrentDate and Services.CalendarDates.Date.ExceptionType != 2) and Services.StartDate <= @CurrentDate and Services.EndDate >= @CurrentDate and Services." + DayOfWeek.ToString() + " = 1 and DirectionId = @DirectionId", parameters);

错误代码是:Vici.CoolStorage.WP7.dll中出现'System.InvalidCastException'类型的第一次机会异常

Services是OneToOne,Services.CalendarDates是OneToMany映射。我是否使用过多的过滤器值或者我做错了什么?使用&lt;&gt;它不起作用任

2 个答案:

答案 0 :(得分:1)

什么是Services.CalendarDates.Date.ExceptionType - 您确定可以与2之类的数字进行比较吗?

调试:

  • 尝试删除过滤器表达式的每个部分,以便识别导致失败的部分
  • 尝试链接到CoolStorage源代码 - 然后你可以看到究竟是什么失败了(尽管这可能在他们的堆栈中非常深,可能感觉有点不可读)。

答案 1 :(得分:1)

SQLite不理解!=语法。您应该使用<>