Я пытаюсь использовать Entity Framework с существующей базой данных.Используя подход, основанный на коде, я получил следующую автоматически созданную модель (среди прочего - я попытался сократить код, чтобы понять суть вопроса):
namespace Fidd.Models
{
using System;
using System.Collections.Generic;
public partial class Movies
{
public Movies()
{
...
this.MoviesPictures = new HashSet<MoviesPictures>();
...
}
public int MovieID { get; set; }
public string MovieName { get; set; }
...
public virtual ICollection<MoviesPictures> MoviesPictures { get; set; }
}
}
Так что в основном этоявляется отношением 1-n между Movies и MoviesPictures.Я все еще в процессе изучения EF.
Если я хочу загрузить один фильм с
var movie = from m in dbContext.Movies
where m.MovieID == 5
select m;
Как мне сделать так, чтобы коллекция MoviesPictures загружалась автоматически?Либо нетерпеливый, либо ленивый.
ОБНОВЛЕНИЕ: На самом деле существует дополнительная связь:
Фильмы 1..n MoviesPictures n..1 Pictures
Модель MoviesPictures определяется следующим образом:
public partial class MoviesPictures
{
public int MoviePictureID { get; set; }
public int MoviePictureMovieID { get; set; }
public int MoviePicturePictureID { get; set; }
public System.DateTime MoviePictureAddDatetime { get; set; }
public bool MoviePictureRemoved { get; set; }
public Nullable<System.DateTime> MoviePictureRemovedDatetime { get; set; }
public virtual Movies Movies { get; set; }
public virtual Pictures Pictures { get; set; }
}
Есть ли способ загрузить 2. этот уровень ассоциации в пределах одного и того же запроса?Я пытался сделать это:
var model = from m in db.Movies.Include("MoviesPictures").Include("Pictures")
where m.MovieID == id
select m
, который не работает - я получаю исключение времени выполнения, что Картинки не определены с атрибутом навигации в Фильмах.Что, конечно, имеет смысл.Я просто не знаю, как задать запрос иначе.
Еще одна вещь, которая меня беспокоит ... Вышеуказанный оператор Include () не перехватывает никаких ошибок во время компиляции.Есть ли способ указать это безопасным для типа способом?
/ Carsten