[英]How to custom response in asp.net web api2
当添加这两行时,此函数中的问题。
UserImage = GetImagePath(db.Users.FirstOrDefault(x => x.Id == p.User_ID).Image),
InsertDate = p.InsertDate.ToString("dd/MM/yyyy")
我需要自定义图像路径和自定义日期格式,显示此问题。
LINQ to Entities无法识别System.String ToString(System.String)
方法,并且该方法无法转换为商店表达式
private static string GetImagePath(string ImageName)
{
return System.Configuration.ConfigurationManager.AppSettings["websiteurl"].ToString() + "/uploads/" + ImageName;
}
[HttpGet]
[Route("Comments")]
public IHttpActionResult Comments(string Post_ID)
{
var list = db
.ShalehComments
.Where(p => p.Shaleh_ID == Post_ID && p.ParentID == 0)
.Select(p => new {
ID = p.ID,
Comment = p.Comment,
User = db.Users.FirstOrDefault(x=> x.Id == p.User_ID).FullName,
UserImage = GetImagePath(db.Users.FirstOrDefault(x => x.Id == p.User_ID).Image),//here problem
InsertDate = p.InsertDate.ToString("dd/MM/yyyy")//and here
}).ToList();
return Ok(
new
{
result = true,
data = list
}
);
}
发生此错误是因为Entity Framework不知道如何在sql
执行.ToString()
或GetImagePath
方法。 因此,您应该使用ToList
加载数据。因此,您可以尝试执行以下操作:
[HttpGet]
[Route("Comments")]
public IHttpActionResult Comments(string Post_ID)
{
var list = db
.ShalehComments
.Where(p => p.Shaleh_ID == Post_ID && p.ParentID == 0)
.ToList()//add ToList
.Select(p => new {
ID = p.ID,
Comment = p.Comment,
User = db.Users.FirstOrDefault(x=> x.Id == p.User_ID).FullName,
UserImage = GetImagePath(db.Users.FirstOrDefault(x => x.Id == p.User_ID).Image),
InsertDate = p.InsertDate.ToString("dd/MM/yyyy")//and here
}).ToList();
return Ok(
new
{
result = true,
data = list
}
);
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.