如何解决LINQ-to-Entities WHERE 条件未在 sql server 上执行
我已经按照 Adam Freeman 的书学习了 ASP.NET MVC 5。我已经实现了书中描述的存储库模式。我正在使用 WHERE 并使用 sql-EventProfiler 记录 sql 命令,然后我将看不到 WHERE 条件。
这是我的示例代码,用于我使用 Ninject 的存储库:
public interface IHelpRepository {
IEnumerable<Help> Helps { get; }
}
public class HelpRepository : IHelpRepository {
private HelpDBContext context = new HelpDBContext();
public IEnumerable<Help> Helps {
get { return context.Helps; }
}
}
public class Help {
[required]
[Key]
public int Id { get; set; }
[required]
public string Title { get; set; }
[required]
public string Description { get; set; }
}
public class HelpController : Controller {
private IHelpRepository HelpRepository;
public HelpController (IHelpRepository helpRepository) {
this.HelpRepository= helpRepository;
}
public ActionResult HelpDescription(int Id) {
Help help = helpRepository.Helps.Where(h => h.Id == Id).SingleOrDefault<Help>();
return View("HelpDescription",help);
}
}
生成的 sql-Command (XEventProfiler):
SELECT [Extent1].[Id] AS [Id],[Extent1].[Title] AS [Title],[Extent1].[Description] AS [Description] FROM [dbo].[Helps] AS [Extent1] ]
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。