【发布时间】:2008-10-21 05:05:26
【问题描述】:
奇怪的性能结果,我有一个 LINQ to SQL 查询,它使用几个 let 语句来获取看起来像这样的各种信息
public IQueryable<SystemNews> GetSystemNews()
{
using (var t = new TransactionScope(TransactionScopeOption.Required,
new TransactionOptions { IsolationLevel = System.Transactions.IsolationLevel.ReadUncommitted }))
{
var results = from s in _datacontext.SystemNews
let member = GetMemberInfo(s.MemberID)
let determination = GetDetermination(s.DeterminationID.Value)
let daimoku = GetDaimoku(s.DaimokuID.Value)
let entry = GetEntry(s.EntryID.Value)
let encouragment = GetEncouragement(s.EncouragementID.Value)
select new SystemNews
{
NewsDate = s.NewsDate,
MemberID = s.MemberID,
PhotoID = s.PhotoID.Value,
DeterminationID = s.DeterminationID.Value,
DaimokuID = s.DaimokuID.Value,
EntryID = s.EntryID.Value,
EncouragementID = s.EncouragementID.Value,
Member = new LazyList<Members>(member),
Determination = new LazyList<Determinations>(determination),
Daimoku = new LazyList<MemberDaimoku>(daimoku),
Entry = new LazyList<MemberEntries>(entry),
Encouragement = new LazyList<MemberEncouragements>(encouragment),
IsDeterminationComplete = s.IsDeterminationComplete.Value
};
return results;
}
}
我在 SQL 视图中创建了相同的东西(基本上至少是在此获得的各种信息),并且 LINQ to SQL 在 90 毫秒内返回结果,而视图返回相同的数据实际上在过去的信息更少700 毫秒。谁能解释一下?
【问题讨论】:
标签: .net sql-server linq-to-sql