0

我使用的是 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属性?

4

2 回答 2

2

如果您对上下文有参考,那么

var entry = context.Set<LogEntry>().Find(entryId);
于 2012-08-14T22:34:40.890 回答
1

您的上下文中没有 DbSet< LogEntry > 的任何原因?

如果你这样做了,你将能够直接从上下文中加载它。

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);
于 2012-08-14T22:34:39.880 回答