ASP.net Linq To TSQL Caching
本文关键字:TSQL Caching To Linq net ASP | 更新日期: 2023-09-27 18:26:40
我正在使用 ASP.Net 和数据库迁移atm。我正在向我的类添加一些功能,以便通过对象获取一些额外的数据。
public IQueryable<CounterDiscussionThread> Answers
{
get
{
return db.CounterDiscussionThreads.Where(e => e.Parent == CounterDiscussionThreadId);
}
}
public CounterDiscussionThread LastPost
{
get
{
return db.CounterDiscussionThreads.OrderByDescending(e => e.TimePosted)
.First(e => e.CounterDiscussionThreadId == CounterDiscussionThreadId || e.Parent == CounterDiscussionThreadId);
}
}
如果我在同一线程中多次调用它们,它们是否会进行多个数据库查询,还是会自动缓存结果?
附加信息:db base DBContext
例: <%# Item.LastPost.TimePosted.ToString("dd.MM.yyyy") %>
和<%# Item.LastPost.TimePosted.ToString("t") %>
.这会导致 1 个或 2 个数据库查询吗?
我假设您使用的是实体框架,因为您提到了数据库迁移。但与 Linq to SQL 类似,数据上下文将缓存结果并尽可能多地使用它们,以防止在同一数据上下文实例中调用它们时返回到 SQL。
查看您的示例,如果所有内容都设置正确(相同的DbContext
、启用缓存等(,则只应发生一个数据库查询。