Entity framework IEnumerable是通用数据集的合适容器吗?
使用实体框架,IEnumerable是用于发回通用数据集的正确容器吗?也就是说,当我不想发回一个对象列表,而只是一个通用的结果集时Entity framework IEnumerable是通用数据集的合适容器吗?,entity-framework,Entity Framework,使用实体框架,IEnumerable是用于发回通用数据集的正确容器吗?也就是说,当我不想发回一个对象列表,而只是一个通用的结果集时 public IEnumerable<object> SelectPlayerFirstAndLastNameList() { return (from p in rlpEntities.Players select new { p.PlayerFirstName, p.PlayerLastName }); } 谢谢。请查看此链接 这实际上取决于
public IEnumerable<object> SelectPlayerFirstAndLastNameList()
{
return (from p in rlpEntities.Players select new { p.PlayerFirstName, p.PlayerLastName });
}
谢谢。请查看此链接
这实际上取决于您的场景,但是当您需要迭代时,将使用IEnumerable,当您需要迭代、修改或排序数据时,将使用List
不可数-
名单-
您还可以使用泛型来传递您要查询的任何类型,例如
public IEnumerable<T> SelectPlayerFirstAndLastNameList<T>()
{
return (IEnumerable<T>)(from p in rlpEntities.Players);
}
因此,您可以传递对象或已知定义的类型。你可以这么说
var x = SelectPlayerFirstAndLastNameList<YourClassHere>();
下面是,它讨论了IListinherits ICollection和IQueryable、ICollection、List的IEnumerableBase通用接口
下面是说明泛型的链接&它的区别和用法
看看你的linq,它是关于特定对象的&将来可以进一步扩展。IQueryable非常适合这种情况,因为它让客户机可以迭代/添加/删除项目。我认为您所拥有的是正确的,但您可以自行决定是否使用它 在备注部分: 匿名类型是直接从对象派生的类类型,并且 不能强制转换为除对象以外的任何类型 及 传递匿名类型或包含匿名类型的集合 类型,作为方法的参数,可以将参数声明为 输入对象。然而,这样做违背了强类型的目的。 如果必须存储查询结果或将其传递到方法外部 边界,考虑使用普通的命名结构或类来代替 匿名类型
我的问题不是关于IEnumerable和List,而是关于其他东西。感谢使用泛型的最新答案@user3267781你对泛型的回答毫无意义,因为他在问这个问题。仔细看看他的方法,他用select new返回一个匿名查询,为了使您的通用方法工作,必须是select new T{},我没有返回匿名类型的列表,但是我仍然建议使用泛型,特别是当用户使用抽象类,并且想要查询降序对象类型时。毕竟,OP确实提到了通用数据集