【发布时间】:2014-03-18 18:09:28
【问题描述】:
我有以下课程;
[ActiveRecord(Lazy = true)]
[DataContract]
public class Room : ActiveRecordBase<Room>
{
[PrimaryKey]
[DataMember]
public virtual Int64 RoomId { get; protected set; }
[Property]
[DataMember]
public virtual Int64 HotelId { get; set; }
[Property]
[DataMember]
public virtual string Name { get; set; }
[Property]
[DataMember]
public virtual string Description { get; set; }
public static Room[] FindByHotelId(Int64 HotelId)
{
using (new SessionScope())
{
return (Room[])Room.FindAllByProperty(typeof(Room), "HotelId", HotelId);
}
}
}
虽然我正在使用
新的 SessionScope()
调用 FindAllByProperty() 时,始终查询数据库以获取数据,而不是从缓存中返回数据。
如果我打电话
Room.Find(1);
响应是从缓存中给出的,没有对数据库进行查询。
为什么会发生这种情况,有任何 Castle ActiveRecord 专家可以帮助我吗?
【问题讨论】:
标签: c# caching nhibernate activerecord castle-activerecord