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 个数据库查询吗?

ASP.net Linq To TSQL Caching

我假设您使用的是实体框架,因为您提到了数据库迁移。但与 Linq to SQL 类似,数据上下文将缓存结果并尽可能多地使用它们,以防止在同一数据上下文实例中调用它们时返回到 SQL。

查看您的示例,如果所有内容都设置正确(相同的DbContext、启用缓存等(,则只应发生一个数据库查询。