EF4.1 LINQ,选择所有结果

EF4.1 LINQ,选择所有结果,linq,entity-framework-4.1,Linq,Entity Framework 4.1,我对LINQ查询和EF都是新手,我通常使用MySQL,我猜不出如何编写真正简单的查询 我想从表中选择所有结果。所以,我以前是这样的: ZXContainer db = new ZXContainer(); ViewBag.ZXproperties = db.ZXproperties.All(); 但是我看到我必须在所有(---)里面写些东西 有人能指导我怎么做吗?如果有人也有很好的引用链接,我非常感谢。All()是对集合中所有元素执行的布尔求值(尽管当它到达求值为false的元素时立即返回fa

我对LINQ查询和EF都是新手,我通常使用MySQL,我猜不出如何编写真正简单的查询

我想从表中选择所有结果。所以,我以前是这样的:

ZXContainer db = new ZXContainer();
ViewBag.ZXproperties = db.ZXproperties.All();
但是我看到我必须在所有(---)里面写些东西

有人能指导我怎么做吗?如果有人也有很好的引用链接,我非常感谢。

All()
是对集合中所有元素执行的布尔求值(尽管当它到达求值为false的元素时立即返回false),例如,您希望确保所述的所有ZXProperty都将某个字段设置为true:

bool isTrue = db.ZXproperties.All(z => z.SomeFieldName == true);
这将使
为真
或为假。LINQ通常是延迟加载,因此如果您直接调用
db.zxproperty
,您可以访问所有对象,但这并不是您想要的。您可以使用
.ToList()
加载变量赋值处的所有对象:

也可以使用以下表达式:

ViewBag.ZXproperties = from s in db.ZXproperties
                       select s;
这与说:

ViewBag.ZXproperties = db.ZXproperties;

.ToList()
的优点是,如果要在此ViewBag.zxproperty上执行多个调用,则在分配变量时只需要初始数据库调用。或者,如果您对数据执行任何形式的可查询操作,例如
.Where()
,您将执行另一个查询,如果您已经有了要处理的数据,这就不太理想了。

要选择所有内容,只需跳过
.All(…)
,因为ZXproperties allready是一个集合

ZXContainer db = new ZXContainer();
ViewBag.ZXproperties = db.ZXproperties;

您可能希望(有时甚至需要)在使用之前在此集合上调用
.ToList()

您没有全部使用。打字

ViewBag.ZXproperties = db.ZXproperties;

您可以使用以下选项:

var result = db.ZXproperties.ToList();
有关linq的更多信息,请参阅

All是对其中所有项和参数的检查,称为。

该方法用于确定集合的所有项是否符合某个条件

如果您只需要所有项目,您可以直接使用:

ViewBag.ZXproperties = db.ZXproperties;
如果要立即对此进行评估,可以将其转换为列表:

ViewBag.ZXproperties = db.ZXproperties.ToList();

这将迫使它立即被拉过电线。

向下投票人你应该解释为什么向下投票,因为我看到你向下投票了我的答案和里德·科佩的答案,这两个答案都是正确的,这样做不是一个好方法。
ViewBag.ZXproperties = db.ZXproperties;
ViewBag.ZXproperties = db.ZXproperties.ToList();