当我尝试创建两个相同类型的dbset时,我得到了上述错误:
public DbSet<ForeignExpression> ForeignExpressions { get; set; }
public DbSet<ForeignExpression> Last25Expressions { get; set; }
我想知道原因。在这种情况下,用户可以添加无限数量的&#34; ForeignExpressions&#34;。我只想展示页面中的最后几个,所以我认为将它们存储在其他地方是有益的,因为查询25条记录的成本要低于数千条。 ASP.NET似乎不同意。为什么会这样,推荐的解决方法是什么?
(p.s。:我知道我可以从ForeignExpression继承来解决问题,但我仍然没有得到这背后的哲学)
答案 0 :(得分:1)
由于Linq to EF提供程序支持延迟执行,正确构建适当的LINQ语句将为您提供所需的功能,而无需提取数千条记录。在给定LINQ语句的情况下,LINQ to EF提供程序将使用适当的过滤构造SQL语句。您可能希望使用LinqPAD来证明LINQ to EF提供程序发出的SQL。