大家好,感谢您抽出时间帮助我。
我正在测试 KendoUI,我正在尝试使用 AJAX 绑定网格,但我收到错误
The specified type member 'getFullName' is not supported in LINQ to Entities. Only initializers, entity members, and entity navigation properties are supported.
我的模型看起来像这样
项目模型
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; }
}
乌苏里奥模型
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 查询或模型以在网格中获取全名
再次感谢您的时间。
问候