0

我正在使用 sql 数据库制作应用程序,

我得到这样的数据:

var vAll= from a in vPRCEntities.tblProducts
          select a;

那么哪个变量是'vAll'?,因为我想在方法中使用它:

private void vGet( ?? vAll)
{
}
4

2 回答 2

0

我认为答案太微不足道了。此外,真正的功劳归功于指出缺失部分的查理。无论如何它是

尝试:

private void vGet(IEnumerable<Product> vAll)

必须在哪里Product输入tblProducts:)

于 2012-11-09T16:33:49.077 回答
0

您可以按照建议使用它:

private void vGet(IEnumerable<Product> vAll){ }

请记住,Linq 使用延迟执行,这意味着在您从集合中读取之前,查询不会真正执行。没关系,但是如果您在应用程序的不同部分阅读该集合,您可能会遇到问题。例如,连接可能会在您有机会获取数据之前关闭。

为了避免这种情况,你可以尝试这样的事情:

var vAll = (from a in vPRCEntities.tblProducts select a).ToList<Product>();

这会强制立即读取集合并将其放入 List<> 对象中。然后你可以这样写你的方法:

private void vGet(List<Product> vAll){ } //IEnumerable will also work

延迟执行不再起作用,因为集合已被读取并放入列表中。

注意:如果数据量非常大,那么所有这些数据都将在列表中的内存中,这可能不是一个好的解决方案。像大多数事情一样 - 这取决于。

于 2012-11-09T17:18:09.687 回答