عذر بابت تاخیر در جواب (بخاطر مراسم سحری به تاخیر افتاد :p )
مقدار برگشتی از تابع توسعه where هنگامی که قصد ارسال رشته دارید از نوع ObjectQuery هست و Namespace = System.Data.Objects
این مثالی که تو msdn هست :
ObjectQuery<Product> productQuery = context.Products .Where("it.StandardCost > @cost", new ObjectParameter("cost", cost));
به صورت پیش فرض باید متغیرتون رو it درنظر بگیرید و شرط ها رو مینویسن مثل همون کاری که خودتون انجام دادید با این تفاوت که باید توی رشتتون پارامتر تعریف کنید و مقادیرو به تابع where بفرستید
اگر بخواین it و تغییر بدین از خاصیت Name شی ساخته شده از جنس ObjectQuery رو تغییر میدین
productQuery.Name = "product";// در اینجا بجای it باید من بعد از product استفاده شود
در نهایت کد شما تبدیل میشه به این :
using (var context = new MainDBEntities2())
{
System.Data.Objects.ObjectQuery<User> contacts = context.Users.Where("it.FirstName = @fname", new System.Data.Objects.ObjectParameter("fname", "Mehdi"));
List<User> items = contacts.ToList();
}
اینم لینک مطلب
موفق باشید
یا علی