我正在尝试了解实体框架的基础知识,并且我对 DbContext 上的 Set<> 方法有疑问。我正在为以下问题使用数据库优先模型。
假设我有一个 ActivityLog 数据库,我可以使用它来提取消息(例如 NLog 消息)。我可以编写一些代码来提取所有这样的消息:
using (var entities = new ActivityLogEntities())
foreach (var log in entities.AcitivityLogs)
Console.WriteLine(log.Message);
但是,我也可以这样做:
using (var entities = new ActivityLogEntities())
foreach (var message in entities.Set<ActivityLog>().Select(entity => entity.Message))
Console.WriteLine(message);
我的问题是这两种说法有什么区别?什么时候使用一个比另一个更合适?或者这只是个人喜好问题?