如何在 asp.net web api2 中自定义响应
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
}
);
}
添加这两行时此函数中的问题。
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
}
);
}