【发布时间】:2016-02-09 00:15:32
【问题描述】:
我有一个 C#.NET (4.5.2) 项目,我正在尝试使用 Entity Framework (6.0) 来管理我在数据库中的数据模型。毕竟,这就是 EF 的用途。
我按照这里的例子:https://msdn.microsoft.com/en-us/data/ef.aspx
但它们都适用于 EF 4.1,并且这些示例中的语法都不适用于我。我的结论是中间版本发生了一些变化,但我可能是错的;我以前从未使用过 EF,而且由于我基本上无法在其中工作,所以我认为这里的某个人可能能够指出对于有经验的人来说可能是一个明显的错误。
首先,我有一个 Context 类:
class DatabaseContext : DbContext
{
public DbSet<Announcement> Announcements {get; set;}
}
我还有第二个类尝试使用该上下文从我的模型中获取数据。
public List<Announcement> AllAnnouncements {
get{
using (var db = new DatabaseContext())
{
var results = from a in db.Announcements select a;
var records = results.ToList();
return records;
}
return null;
}
}
第一个问题:
第二个块中的db.Announcements 有VS 的红色波浪线错误线,悬停时显示Could not find an implementation of the query pattern for source type 'DbSet<Announcement>'. 'Select' not found.
这告诉我问题可能出在第一个块(我设置 Context 类的地方),但如果是这样,我不知道它可能是什么;我在文档/示例中使用了语法,所以如果文档不正确,我不确定什么是正确的。
第二个问题:
我发现的所有示例都完全忽略了排序的主题,但我希望这些记录以最近的第一顺序进行排序(所以从 SQL 的角度来看是“AnnouncmentDateTime desc”)。我注意到如果我想包含它,似乎有一个orderby 字符串在 LINQ 字符串中被识别,并且还有一个被识别的descending 关键字也出现了。但不清楚该放在哪里,如何标点它(如果有的话),以及如何让查询运行(如果 DbSet 完全可查询,第二点可能会自然解决,我不知道直到第一个问题得到解决)。
我知道这是一个基本问题,但是我能够找到的文档不起作用,并且这里的问题清楚地表明其他人已经方式过了这一点在他们自己的代码中,所以我一定做错了,这对以前使用过 EF 的人来说是显而易见的。
提前感谢您能给我的任何帮助。
【问题讨论】:
标签: c# .net entity-framework linq entity-framework-6