【问题标题】:ASP.net Linq To TSQL CachingASP.net Linq To SQL 缓存
【发布时间】:2013-08-07 12:58:12
【问题描述】:

我正在使用 ASP.Net 和 Database-Migrations 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);
    }
}

如果我在同一个线程中多次调用它们,它们会进行多个数据库查询,还是会自动缓存结果?

附加信息: 数据库基础 DBContext

示例: &lt;%# Item.LastPost.TimePosted.ToString("dd.MM.yyyy") %&gt;&lt;%# Item.LastPost.TimePosted.ToString("t") %&gt;。这会导致 1 或 2 次数据库查询吗?

【问题讨论】:

  • dbDbContext 为基础吗?
  • 抱歉,是的

标签: c# asp.net database-migration


【解决方案1】:

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

看看你的例子,如果一切设置正确(相同的DbContext,启用缓存等),应该只发生一个数据库查询。

【讨论】:

    猜你喜欢
    • 2010-12-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-09
    • 2011-01-31
    • 2010-09-07
    • 2011-04-17
    相关资源
    最近更新 更多