If you don't do anything stupid LINQ2SQL won't give you big performance problems. There is a small overhead using LINQ2SQL but that is quite small.
The most efficient way would be to select straight into your business objects in the select part.
var myResult = from product in context.Products
where product.StockQty > 10
select new MyBusinessProduct
{
Name = product.Name,
Category = product.Category,
etc = product.etc, //...
}
Often you can use your LINQ-objects as your business objects, you can decorate them with your business methods in a partial class and also implement the partial methods on the LINQ classes to implement validation rules.