0

假设我有一个简单的带有字段的客户表DayOfBirth和一个计算字段“年龄”现在我想使用年龄搜索表。

我将 Age 作为参数传递给查询,所以我想到的第一件事是:

                    query = from c in query
                    where (DateTime.Now - c.DateOfBirth).Days / 360 == Age.Value
                    select c;

但这当然行不通,因为数据提供者不知道如何执行“.Days”

那么这样做的正确方法是什么?

4

2 回答 2

1

一个解决方案是在表中添加非计算字段,并在添加新记录事件时计算年龄并将其保存在数据库中,以便以后可以搜索!

但我相信应该有更好的主意!

于 2013-02-08T01:23:58.910 回答
0

有一些方法可以绕过.Days部分,但是你会遇到与Age属性相同的问题,除非没有办法绕过那个问题。计算属性只存在于 LightSwitch 本身中,因此数据提供者再次无法使用它们。

Stacker 关于添加非计算属性并将计算值存储在数据库中的建议是我这样做的方式(如果我没有使用RIA 服务,这是我实际处理这些情况的方式)。

于 2013-02-08T12:41:51.603 回答