C# Wcf服务未使用Castle ActiveRecord进行缓存
我使用MySQL数据库和Castle ActiveRecord创建了一个Wcf服务。该服务将从不同的第三方应用程序单独调用多次。我希望Wcf服务缓存所有经常使用的数据,而不是重复访问数据库 我已将Wcf服务设置为作为单个服务器运行C# Wcf服务未使用Castle ActiveRecord进行缓存,c#,mysql,wcf,caching,activerecord,C#,Mysql,Wcf,Caching,Activerecord,我使用MySQL数据库和Castle ActiveRecord创建了一个Wcf服务。该服务将从不同的第三方应用程序单独调用多次。我希望Wcf服务缓存所有经常使用的数据,而不是重复访问数据库 我已将Wcf服务设置为作为单个服务器运行 protected void Application_Start(object sender, EventArgs e) { IConfigurationSource oSource = ActiveRecordSectionHandler.Instance
protected void Application_Start(object sender, EventArgs e)
{
IConfigurationSource oSource = ActiveRecordSectionHandler.Instance
ActiveRecordStarter.Initialize(oSource, typeof(MyObject));
}
然后,在我的一个Wcf方法中,我使用以下方法从ORM检索数据
using (new SessionScope())
{
List<MyObject> oObjectList = MyObject.FindAll().ToList();
}
使用(新会话范围())
{
List oObjectList=MyObject.FindAll().ToList();
}
我的目标设定如下
[ActiveRecord(Lazy = true)]
public class MyObject : ActiveRecordBase<MyObject >
{
[PrimaryKey]
public virtual int Id { get; protected set; }
[Property]
public virtual string Name { get; set; }
}
[ActiveRecord(Lazy=true)]
公共类MyObject:ActiveRecordBase
{
[主密钥]
公共虚拟整数Id{get;protected set;}
[物业]
公共虚拟字符串名称{get;set;}
}
我遇到的问题是,在执行简单的读取请求数据时,例如
MyObject.FindAll().ToList())
,每次都会查询数据库,而不是返回缓存数据,因为数据库中的数据是不变的
我哪里出错了…?您没有在代码中实现任何缓存,对吗?不,目前还没有,我知道ActiveRecord默认会提供一些缓存,我可以使用WCF的一个实例。您曾经尝试过:使用(new SessionScope(FlushAction.Never))是的,我尝试过,但如果我查询数据库,并在查询数据库时调用相同的服务,即使数据保持不变