2015-08-21 91 views
0

我在asp.net mvc4中有一个selectListItem和Linq问题。错误:无法创建类型的常量值。在这种情况下,仅支持基元类型或枚举类型

这是我的模型

namespace RedistribucionDeCostos.Models 
{ 
    using System; 
    using System.Collections.Generic; 

    public partial class TUsuario 
    { 
     public int PkUsuarioId { get; set; } 
     public string UsuarioContrasena { get; set; } 
     public string UsuarioRol { get; set; } 
     public string UsaurioReportarTiempo { get; set; } 
     public string UsuarioRedistribuirCosto { get; set; } 
     public string UsuarioSituacion { get; set; } 
     public System.DateTime UsuarioFechaCreacion { get; set; } 
     public int FkUsuario_EmpleadoId { get; set; } 

     public virtual TEmpleado TEmpleado { get; set; } 

    } 
} 

我控制器文件

public ActionResult Create() 
    { 
     if(string.Compare(Session["Rol"].ToString(),"USER") != 0){ 
      var query = from empleado in db.TEmpleado 
         where !(from usuario in db.TUsuario 
           from empleado2 in db.TEmpleado 
           where usuario.FkUsuario_EmpleadoId == empleado2.PkEmpleadoId 
           select usuario.FkUsuario_EmpleadoId).Contains(empleado.PkEmpleadoId)     
        && empleado.EmpleadoSituacion.CompareTo('A') == 0 
        select new {empleado.PkEmpleadoId, empleado.EmpleadoNombre, empleado.EmpleadoApellido }; 


      List<SelectListItem> opciones = new List<SelectListItem>(); 
      foreach(var item in query){ 
       opciones.Add(new SelectListItem { Text = (item.EmpleadoApellido+" "+item.EmpleadoApellido), Value = item.PkEmpleadoId.ToString() }); 
      } 

      ViewBag.FkUsuario_EmpleadoId = opciones; 

      return View(); 
     } 
     return RedirectToAction("Index", "Home"); 
    } 

HTML文件剃刀

<div class="form-group"> 
    <label class="color-primary">Empleado</label> 
    @Html.DropDownList("FkUsuario_EmpleadoId", (IEnumerable<SelectListItem>)ViewBag.FkUsuario_EmpleadoId,String.Empty, new {@class = "form-control"}) 
    @Html.ValidationMessageFor(model => model.TEmpleado) 
</div> 

的换每个扔我一个错误:

"Unable to create a constant value of type 'System.Object'. Only primitive types or enumeration types are supported in this context."

回答

0

错误发生在linQ查询中。 我把

empleado.EmpleadoSituacion.CompareTo('A') == 0 

'A' 是一个聊天型的CompareTo接受字符串,我改变了对stament

empleado.EmpleadoSituacion.CompareTo("A") == 0 

及其作品!!!!!。

(坏英语对不起)

相关问题