所以我终于完成了 WCF 服务中的缓存。不管怎样,现在这是我的界面
[ServiceContract]
public interface IService1
{
[OperationContract]
IEnumerable<Screen_Data> GetData(DateTime d);
}
这是我实现这个接口的类
[AspNetCompatibilityRequirements(RequirementsMode =
AspNetCompatibilityRequirementsMode.Allowed)]
[ServiceBehavior(InstanceContextMode = InstanceContextMode.PerCall)]
public class Service1 : IService1
{
[AspNetCacheProfile("CacheFor2Minutes")]
[WebGet(UriTemplate = "?DateTime={DateTime}")]
public IEnumerable<Screen_Data> GetData(DateTime d)
{
ScreenScrapingEntities1 db = new ScreenScrapingEntities1();
IEnumerable<Screen_Data> sd = from p in db.Screen_Data
where p.DateTime > d
select p;
return sd;
}
}
这个 screen_data 是一个数据库表,我从数据库生成了一个 ado.net 实体数据模型。
我的问题是,当我尝试从传递日期时间值的 WCF 客户端调用此方法时,它应该返回超过 10 行。我不确定如何从该方法返回这些行,有人可以帮助我使用我在课堂上编写的这段代码,它甚至不使用 linq 查询中的 lambda 表达式。
这就是我GetData
从客户端调用此方法的方式
DateTime t = DateTime.Parse("2012-05-31 11:38:29.070");
ServiceReference1.Service1Client client = new ServiceReference1.Service1Client();
client.GetData(t);
这是创建模型时生成的类
[EdmEntityTypeAttribute(NamespaceName="ScreenScrapingModel", Name="Screen_Data")]
[Serializable()]
[DataContractAttribute(IsReference=true)]
public partial class Screen_Data : EntityObject
{
}