c#错误引发类型'System.Data.Entity.Core.EntityCommandExecutionException'

时间:2018-02-14 10:48:28

标签: c#

请帮帮我。如何删除该错误?

这里有两个课程:

 public class Users
    {
        public int UserId { get; set; } 
       public int RoleId { get; set; }
        public String Username { get; set; }
        public virtual ICollection<Role> Roles { get; set; }
}
public class Role
    {
        public int RoleId { get; set; }
        public string RoleName { get; set; }  
        public virtual ICollection<Users> Users { get; set; }
    }

在这里,我为寻找结果编写了简单的Linq查询

 enum TypeofEmp{
                Admin=100,
                HttpRequest=101,
                Devoloper=102
        };
         public Users GetUsers(string Uname, string psw)
                {

                    var x = (from n in db.Users
                            where n.Username == Uname && n.Password == psw
                            select n).FirstOrDefault();
                    if(x!=null){
                ICollection<Role> role = new List<Role>();

                        int RoleId = x.RoleId;
                var RoleNmae   =  Enum.GetName(typeof(TypeofEmp), RoleId);    
                Role dd = new Role(); dd.RoleId = RoleId;  dd.RoleName = RoleNmae;
 Users users = new Users();
                users.Roles = role;
                    }       
                    return x;

我在这里得到错误

  

'x.Roles'抛出了类型异常   'System.Data.Entity.Core.EntityCommandExecutionException'

1 个答案:

答案 0 :(得分:0)

您正在尝试访问Roles属性,但这不存在。您只有foreach ( var role in x.Roles ) { //do something with role.RoleId } 属性,该属性包含角色列表(表示一个用户可能分配了多个角色)。

Users

作为提示,我会重命名User类o Users,因为现在它很混乱,因为您将单个用户称为dd

此外,在您使用角色实例创建{{1}}变量的代码中,但您没有在任何地方使用它。我不确定这是你想要的。