大家好,謝謝你的時間幫助我。LINQ to Entities不支持指定的類型成員。使用JSON,KendoUI,AJAX
我測試KendoUI,我嘗試使用AJAX結合網格,但我得到的錯誤
The specified type member 'getFullName' is not supported in LINQ to Entities. Only initializers, entity members, and entity navigation properties are supported.
我的模型看起來像這樣
PROYECTOS型號
public class Proyecto
{
[Required]
[Key]
[Display(Name = "Num. Proyecto")]
public virtual String ProyectoID { get; set; }
[Required]
[Display(Name = "ID Usuario")]
public virtual int UserID { get; set; }
[Required]
[DisplayFormat(DataFormatString = "{0:d}", ApplyFormatInEditMode = true)]
[Display(Name = "Fecha De Inicio")]
public virtual DateTime FechaInicio { get; set; }
[Required]
[DisplayFormat(DataFormatString = "{0:d}", ApplyFormatInEditMode = true)]
[Display(Name = "Fecha de Fin")]
public virtual DateTime FechaFin { get; set; }
[Display(Name = "Descripcion")]
public virtual String Descripcion { get; set; }
[Required]
[Display(Name = "Status")]
public virtual int StatusID { get; set; }
public virtual ICollection<Comentario> Comentarios { get; set; }
public virtual ICollection<Abono> Abonos{ get; set; }
public virtual ICollection<Cargo> Cargos{ get; set; }
public virtual ICollection<Status> Status { get; set; }
public virtual Usuario Usuario { get; set; }
}
Usuario Model
public class Usuario
{
[Required]
[Key]
[Display(Name = "Id")]
public virtual int UserID { get; set; }
[Required]
[Display(Name = "Usuario")]
public virtual String UserName { get; set; }
[Required]
[Display(Name = "Password")]
public virtual String Password{ get; set; }
[Required]
[Display(Name = "Nombre")]
public virtual String Nombre { get; set; }
[Display(Name = "Apellidos")]
public virtual String Apellidos{ get; set; }
[Display(Name = "Email")]
public virtual String Email { get; set; }
[Required]
[Display(Name = "Nivel")]
public virtual int Nivel { get; set; }
public virtual ICollection<Proyecto> Proyectos { get; set; }
public virtual ICollection<Comentario> Comentarios { get; set; }
[Display (Name="Responsable")]
public virtual string getFullName
{
get {
return Nombre + " " + Apellidos;
}
}
}
在PROYECTO控制器我有這樣的方法(如錯誤發生)
public ActionResult Proyectos_Read([DataSourceRequest]DataSourceRequest request)
{
db.Configuration.ProxyCreationEnabled = false;
var proyectos = from e in db.Proyectos.Include(c => c.Usuario) select e;
DataSourceResult result = proyectos.ToDataSourceResult(request, o => new
{
ProyectoID = o.ProyectoID,
OCCliente = o.OCCliente,
FullName = o.Usuario.getFullName,
Descripcion = o.Descripcion
});
return Json(result, JsonRequestBehavior.AllowGet);
}
終於這是我的看法
@(Html.Kendo().Grid<NTSMvc.Models.Proyecto>()
.Name("Grid")
.Columns(columns =>
{
columns.Bound(p => p.ProyectoID).Filterable(true).Groupable(true);
columns.Bound(p => p.OCCliente);
columns.Bound(p => p.Usuario.getFullName);
columns.Bound(p => p.Descripcion);
})
.DataSource(datasource => datasource
.Ajax()
.Read(read => read.Action("Proyectos_Read","Proyectos"))
.PageSize(5)
)
.Filterable()
.Groupable()
.Pageable()
)
我是如何改變我的LINQ查詢還是我的模型在網格中獲取全名
再次感謝您的時間。
問候
是的,我想要在列中顯示完整的名稱,我會試試這個,非常感謝! –