3

我很难调试一个特定的问题并且有几个问题。首先,这是发生了什么:

我有一个相对简单的表叫做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. 是否可能与我生成的实体有关?我注意到当我键入时employee.First(). Name出现在 Intellisense 中。我对此感到非常困惑,因为正如我所提到的,员工表中没有名称列。

4

2 回答 2

1

修复了问题。我刚刚删除了现有的实体框架模型并重新添加了它。

于 2013-03-28T15:42:08.487 回答
0

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

对于您的财产,不知何故它确实进入了您的班级,因此您的数据模型认为它就在那里,无论出于何种原因。我会说只是转到您的数据模型(您没有提到这是 EF 还是 LINQ-to-SQL),您会在那里看到“名称”。只需将其删除,它就会将其从类和数据访问内容中删除。

于 2013-03-28T14:43:23.003 回答