我正在使用Entity Framework 4.3.1 Code First,我有类似于以下内容的内容:
class Program
{
static void Main(string[] args)
{
// get LogEntry with id x..
}
}
public class MyContext : DbContext
{
public DbSet<Log> Logs { get; set; }
}
public class Log
{
public int LogId { get; set; }
public ICollection<LogEntry> LogEntries { get; set; }
}
public class LogEntry
{
public int LogEntryId { get; set; }
}
给定整数LogEntryId获取LogEntry对象的最佳方法是什么?是否可以直接获取实体而无需通过Log.LogEntries
属性?
答案 0 :(得分:2)
如果你有对上下文的引用,那么
var entry = context.Set<LogEntry>().Find(entryId);
答案 1 :(得分:1)
任何原因你都没有DbSet&lt; LogEntry&gt;在你的背景下?
如果你这样做,你可以直接从上下文中加载它。
public class MyContext : DbContext
{
public DbSet<Log> Logs { get; set; }
public DbSet<LogEntry> LogEntries { get; set; }
}
var logEntry = context.LogEntries.SingleOrDefault(le => le.LogEntryId == someLogEntryId);