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] ]

为什么生成sql 命令中不包含 WHERE?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)