C# 使用Linq查询从数据库检索图像时出错
我使用以下代码通过linq查询从数据库检索图像 但我得到的错误是 LINQ to Entities无法识别方法“System.String ToString(System.String)”方法,并且无法将此方法转换为存储表达式。 出现了用//编码的错误行C# 使用Linq查询从数据库检索图像时出错,c#,C#,我使用以下代码通过linq查询从数据库检索图像 但我得到的错误是 LINQ to Entities无法识别方法“System.String ToString(System.String)”方法,并且无法将此方法转换为存储表达式。 出现了用//编码的错误行 public void ProcessRequest (HttpContext context) { HttpRequest req = context.Request; MembershipUser us
public void ProcessRequest (HttpContext context) {
HttpRequest req = context.Request;
MembershipUser user_id1 = Membership.GetUser();
string user_id = user_id1.ProviderUserKey.ToString();
// string categoryID =Convert.ToInt32("4");// req.QueryString["CategoryID"].ToString();
// Get information about the specified category
TMSEntities db = new TMSEntities();
//get User ID From Login
var category = (from data in db.Register1_db
where data.User_ID == Convert.ToString(user_id)
select data.Student_Photo);
//error occurred.
int len = category.First().Length;
// Output the binary data
// But first we need to strip out the OLE header
int OleHeaderLength = 78;
int strippedImageLength = len - OleHeaderLength;
byte[] imagdata = new byte[strippedImageLength];
Array.Copy(category.First().ToArray(), OleHeaderLength, imagdata, 0, strippedImageLength);
if ((imagdata) != null)
{
MemoryStream m = new MemoryStream(imagdata);
System.Drawing.Image image = System.Drawing.Image.FromStream(m);
image.Save(context.Response.OutputStream, ImageFormat.Jpeg);
}
}
public bool IsReusable {
get {
return false;
}
}
查看给出错误的行
var category = (from data in db.Register1_db
where data.User_ID == Convert.ToString(user_id)
select data.Student_Photo);
Convert.ToString(用户id)
不是可以在Linq to实体中使用的表达式
当查看您的代码时,我可以看到user\u id
已经是一个字符串,不需要转换,因此这应该可以更好地工作
var category = (from data in db.Register1_db
where data.User_ID == user_id
select data.Student_Photo);
这一条应该有效:
var string_id = Convert.ToString(user_id);
var category = (from data in db.Register1_db
where data.User_ID == string_id
select data.Student_Photo);
LINQ创建表达式树,因此不会调用Convert.ToString
,但必须由LINQ提供程序进行解释