列名无效:SQL / ASP.NET

时间:2013-03-28 14:39:20

标签: asp.net sql sql-server linq

我很难调试特定问题并且有几个问题。首先,这是正在发生的事情:

我有一个名为Employees的相对简单的表,它有一个主键/标识Id。还有一个Username列 - 这是我用于成员身份的GUID表的aspnet_Users外键。最后,还有另一个外键Team_Id指向另一个表Teams

我真正想做的就是给出一个选定员工的ID,然后将其传递给DAL中的方法,然后通过以下语句找到该员工:

var employee = entities.Employees.Where(emp => emp.Id == employeeId);  

一旦检索到员工,我想使用另一个传递给同一方法的值 - 所选团队的ID - 来更新员工的Team_Id值(他们被分配到哪个团队),使用以下:

employee.First().Team_Id = teamId;
entities.SaveChanges();  

我得到了例外

  

列名无效:{Name}

对我来说没有意义,因为Employee没有名称列。

所有这些都说,我的问题是:

  1. 混合起来可能来自哪里?我已经尝试过一种方法来逐步执行代码,但似乎错误是在查询本身的某个地方,所以我不确定如何跟踪查询本身的执行。

  2. 它可能与我生成的实体有关吗?我注意到,当我在Intellisense中输入employee.First(). Name时。我真的很困惑,因为我已经提到员工表中没有名称列。

2 个答案:

答案 0 :(得分:1)

修正了问题。我刚删除了现有的Entity Framework Model并重新添加了它。

答案 1 :(得分:0)

就查询而言,您始终可以使用SQL事件探查器来查看实际运行的脚本。无论如何,这是对生成的SQL进行故障排除的好方法。

对于你的财产,某种程度上它确实适合你的班级,所以你的数据模型认为它存在,无论出于何种原因。我只想说你的数据模型(你没有提到这是EF还是LINQ-to-SQL),你会在那里看到“Name”。只需删除它,它就会从类和数据访问中删除它。

相关问题