Entity Framework Загрузка - PullRequest
       3

Entity Framework Загрузка

0 голосов
/ 22 октября 2011

Я использую Entity Framework 4.1 (Code First) в качестве структуры отображения O / R:

У меня есть три сущности: Post, PostForUser и User, тогда как PostForUser связан ровно с одним Post и одним пользователем.

Теперь я хочу получить все сообщения для данного пользователя и дополнительно загрузить пользователя, который создал сообщение:

var posts = _dbContext.PostsForUser
    .Include("Post.ByUser")
    .Where(x => x.WasRead == false && x.User.Id == CurrentUser.Id)
    .Select(x => x.Post)
    .ToArray();

Используя приведенный выше запрос, свойство «ByUser» никогда не загружается. Я вообще не использую отложенную загрузку, но все равно не могу заставить загрузку работать должным образом.

Не зарегистрировано никаких пользовательских конфигов сопоставления или специальных соглашений. Просто следующие определения сущностей:

public class Post
{
    public int Id { get; set; }        
    public string Content { get; set; }
    public DateTime Date { get; set; }
    public User ByUser { get; set; }
}

public class PostForUser
{
    public int Id { get; set; }
    public User User { get; set; }
    public Post Post { get; set; }
    public bool WasRead { get; set; }
}

1 Ответ

0 голосов
/ 22 октября 2011

Ваше включение .Include("Post.ByUser") относится к PostForUser, но вы выбираете Post, поэтому включение должно идти в и из выбора:

var posts = _dbContext.PostsForUser
            .Where(x => x.WasRead == false && x.User.Id == CurrentUser.Id)
            .Select(x => x.Post).Include("ByUser")
            .ToArray();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...