我正在用sql数据库创建一个应用程序,
我得到的数据是这样的:
var vAll= from a in vPRCEntities.tblProducts
select a;
哪个变量是'vAll'然后?,因为我想在方法中使用它:
private void vGet( ?? vAll)
{
}
答案 0 :(得分:0)
我觉得答案太过微不足道了。此外,真正的功劳归于查理,他指出了缺失的部分。无论如何它是
尝试:
private void vGet(IEnumerable<Product> vAll)
其中Product
必须是tblProducts
中的类型:)
答案 1 :(得分:0)
你可以按照建议使用它:
private void vGet(IEnumerable<Product> vAll){ }
请记住,Linq使用延迟执行,这意味着在您从集合中读取之前,查询将不会实际执行。这没关系,但如果您在应用程序的不同部分阅读该集合,则可能会遇到问题。例如,在您有机会获取数据之前,连接可能会关闭。
为了避免这种情况,您可以尝试这样的事情:
var vAll = (from a in vPRCEntities.tblProducts select a).ToList<Product>();
这会强制立即读取集合并将其放入List&lt;&gt;宾语。然后你可以这样编写你的方法:
private void vGet(List<Product> vAll){ } //IEnumerable will also work
由于已经读取了集合并将其放入列表中,因此延迟执行不再起作用。
注意:如果数据量非常大,那么所有数据都将在列表的内存中,这可能不是一个好的解决方案。像大多数事情一样 - 这取决于。