错误:无法创建类型的常量值。在此上下文中仅支持基元类型或枚举类型

时间:2015-08-21 19:40:32

标签: c# asp.net asp.net-mvc linq asp.net-mvc-4

我在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 razor文件

<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>   

for-each给我一个错误:

  

“无法创建类型'System.Object'的常量值。在此上下文中仅支持基本类型或枚举类型。”

1 个答案:

答案 0 :(得分:0)

错误发生在linQ查询中。 我被放了

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

&#39; A&#39;是一个聊天类型,CompareTo接受字符串,我改变了

的这个例子
empleado.EmpleadoSituacion.CompareTo("A") == 0 

及其作品!!!!!。

(坏英语抱歉)