Quiero crear un nuevo objeto de modelo denominado Movie_Type
en mi aplicación web ASP.NET MVC. ¿Cuáles serán las diferencias si defino la propiedad de navegación de esta clase como List
, ICollection
o IQueryable
de la siguiente manera?Lista frente a IEnumerable frente a IQueryable al definir la propiedad de navegación
public partial class Movie_Type
{
public int Id { get; set; }
public string Name { get; set; }
public string Description { get; set; }
public List<Movie> Movies { get; set; }
}
O
public partial class Movie_Type
{
public int Id { get; set; }
public string Name { get; set; }
public string Description { get; set; }
public IQueryable<Movie> Movies { get; set; }
}
O
public partial class Movie_Type
{
public int Id { get; set; }
public string Name { get; set; }
public string Description { get; set; }
public ICollection<Movie> Movies { get; set; }
}
Editar: - @Tomas Petricek. gracias por su respuesta. en mi caso estoy usando el primer enfoque de la base de datos y luego uso la plantilla DbContext
para mapear mis tablas, lo que automáticamente creó ICollection
para todas las propiedades de navegación, entonces mis preguntas son: - 1. ¿Esto significa que no siempre es el mejor elección para usar Icollection. Y debería cambiar las clases generadas automáticamente para que se ajusten mejor a mi caso. 2. En segundo lugar i puede manejar para elegir entre la carga diferida o Eager definiendo .include como
var courses = db.Courses.Include(c => c.Department);
Independientemente de lo estoy usando para definir las propiedades de navegación. Entonces no puedo entender tu punto. 3. Nunca encontré ejemplos o tutoriales que usen IQuerable
para definir las propiedades de navegación, ¿cuál podría ser el motivo? BR
¿Has probado esto antes de publicar aquí? – BrokenGlass
http://stackoverflow.com/questions/3603545/ienumerablet-vs-ilistt-vs-iqueryablet esta publicación lo ayudará a decidir – Devjosh