【问题标题】:Entity framework exception" the specified type member not supported in linq to entities, only properties实体框架异常”在 linq to 实体中不支持指定的类型成员,只有属性
【发布时间】:2013-04-24 13:51:26
【问题描述】:

以下代码快照引发异常。

 public Models.Web.User GetLogingUser(string username, string password)
   {
       using (Data.User_Repository repository = new Data.User_Repository())
       {
      IQueryable<Models.Web.User> query = repository.FindAll().Select(x =>new             Models.Web.User()).Where(c => c.UserName.Equals(username.ToString())).AsQueryable();
           return query.Where(x => x.Password.Equals(password.ToString())).First();
       }
   }

这里的存储库类具有通用方法 insert、update、delete、find、findall 等。 在调试期间,我发现输入的用户名记录被检索但是当它分配给“查询”变量时,我得到以下错误异常。请帮助我。谢谢 " LINQ to Entities 不支持指定的类型成员“用户名”。仅支持初始化程序、实体成员和实体导航属性。”

【问题讨论】:

  • 密码和用户名已经是字符串了,你在哪里调用.ToString()?
  • c.UserName 的类型是什么?
  • 你是对的。两者都是字符串类型,不需要.ToString()。但实际问题与 .ToString() 无关

标签: asp.net-mvc entity-framework exception ef-code-first


【解决方案1】:

它的 .Equals() 是你的问题。使用==,,因为这将在数据库服务器上执行,它将使用为您的数据库配置的案例比较类型。

【讨论】:

  • 也试试不带 .ToString()
  • 公共类用户{公共字符串用户名{get;设置;}公共字符串密码{get;设置;}}
  • 注意:属性名称与 DB 中的相同。
猜你喜欢
  • 2023-03-13
  • 1970-01-01
  • 2020-08-15
  • 2021-11-11
  • 1970-01-01
  • 1970-01-01
  • 2011-10-28
相关资源
最近更新 更多