3

特定の問題のデバッグに苦労しており、いくつか質問があります。まず、何が起こっているかは次のとおりです。

と呼ばれる比較的単純なテーブルEmployeesがあり、主キー/ ID がありIdます。メンバーシップに使用されるテーブルへの外部キーUsernameである列もあります。最後に、別のテーブルを指す別の外部キーがあります。 GUIDaspnet_UsersTeam_IdTeams

私が実際にやろうとしているのは、選択した従業員の ID を指定し、それを DAL のメソッドに渡すことです。DAL は、次のステートメントで従業員を見つけます。

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

従業員が取得されたら、同じメソッドに渡される別の値 (選択したチームの ID Team_Id) を使用して、従業員の値 (割り当てられているチーム) を次のよう に更新します。

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

私は例外を取得します

列名が無効です: {Name}

Employee には name 列がないため、これは意味がありません。

そうは言っても、私の質問は次のとおりです。

  1. 取り違えはどこから来ているのでしょうか?コードをステップ実行する方法を考えてみましたが、クエリ自体のどこかにエラーがあるように見えるため、クエリ自体の実行を追跡する方法がよくわかりません。

  2. 生成されたエンティティと関係がある可能性はありますか? employee.First(). Name入力すると、Intellisense が表示されることに気付きました。前述したように、employees テーブルには Name 列がないため、これには本当に困惑しています。

4

2 に答える 2

1

問題を修正しました。既存の Entity Framework Model を削除して、再度追加しました。

于 2013-03-28T15:42:08.487 に答える
0

クエリに関する限り、いつでも SQL プロファイラーを使用して、実際に実行されているスクリプトを監視できます。とにかく、これは生成された SQL をトラブルシューティングする良い方法です。

プロパティについては、どういうわけかそれがクラスに到達したため、データモデルは何らかの理由でそれがそこにあると考えます。データモデルに移動するといいでしょう (これが EF なのか LINQ-to-SQL なのかは言及しません)。そこに「名前」が表示されます。それを削除するだけで、クラスとデータアクセスから削除されます。

于 2013-03-28T14:43:23.003 に答える