Лучший вариант (по крайней мере, для приведенного вами примера) - извлечь операцию из оператора LINQ:
Int32 brandId = Int32.Parse(brandIdString)
MyDataContext db = new MyDataContext()
Brand = db.Brands.First(b => b.BrandId == brandId )
Пояснение:
Когда вы используете LINQ, он хочет найти способы перегрузить большую часть работы на запрос базы данных. Чтобы сделать это, он фактически создает дерево выражений для всех вещей, которые вы говорите ему делать в различных лямбда-выражениях. Затем, когда вы хотите выполнить запрос, он решает, какой оператор SQL будет лучше всего выполнять то, о чем вы его просили. Это позволяет ему сделать очень необычную оптимизацию. Однако, если он не знает, как преобразовать что-либо в оператор SQL, он разозлится на вас, когда вы попытаетесь выполнить запрос.