0
我試圖用信息窗口在谷歌地圖上映射各種標記。直到我嘗試通過控制器傳遞一個字符串時,它一切正常。字符串linq實體錯誤 - json
我得到的錯誤如下:「LINQ實體無法識別方法‘System.String GetMainPhoto(的Int32)’方法,和這種方法不能被翻譯成存儲表述」
我讀過這主要是因爲ToString方法或其他一些方法無法使用而導致的。但是,在這種情況下,我不確定如何糾正這個錯誤。
基本上,我有一個數據庫 - PropertyPhoto保存圖片的文件名。 GetMainPhoto基本上查找所有行並返回主圖片文件名。
public string GetMainPhoto(int id)
{
return db.PropertyPhotos.Single(p => p.PropertyId == id && p.MainPic == true).PhotoLocation;
}
控制器如下:
public ActionResult Map()
{
if (Request.IsAjaxRequest())
{
var properties = websiteRepository.FindAllProperties();
var jsonProperties = from property in properties
select new JsonProperty
{
PropertyId = property.PropertyId,
NoOfBedroom = property.NoOfBedrooms,
Price = property.Price,
Address1 = property.PropertyAddress.Address1,
MainPicSrc = websiteRepository.GetMainPhoto(property.PropertyId),
Latitude = property.PropertyAddress.Latitude,
Longitude = property.PropertyAddress.Longitude
};
return Json(jsonProperties.ToList(), JsonRequestBehavior.AllowGet);
}
else
{
return View();
}
}