2012-01-25 11 views
0

私はEntityモデルで定義されたテーブルを持っています。また、モデル内のテーブルに外部キーのナビゲーションプロパティが定義されています。EntityDataSourceから外部キーテーブルのデータにアクセスするには?

Users 
- UserID 
- Username 
- UserGroupID 

Groups 
- GroupID 
- GroupName 

グリッドはEntityDataSourceに接続され、Usersテーブルを取得して表示します。ユーザーごとにUserGroupID ID列を表示する代わりに、対応するGroupNameを表示する必要があります。エンティティモデルで接続されているので、UserオブジェクトからGroupNameを取得する方法は簡単ですか?

ありがとうございます! ケビン

+0

私はグリッドにUserテーブルを結合しています。設計時に、列が検索されます。私の目標は、UserGroupID列を表示せず、代わりに外部キーテーブルからGroupName列を表示することです。私は、EntityDataSourceウィザードを使用してusersテーブルをポイントしています。どのようにmyUser.UserGroup.Nameを指定するのですか?私はナビゲーションプロパティを設定しています。 SQLデータベースにある外部キーのために自動的に設定されます。 – Kevin

+0

私の問題は、すべてのナビゲーションプロパティが定義されていると思いますが、EntityDataSourceを設定すると、Userテーブルから列を取得するだけです。定義された関係のためにUserテーブルとUserGroupsテーブルを取得する必要があると言っていますか?それは残念なことに起こっていないからです。 – Kevin

答えて

1

各エンティティに関連付けを設定する必要があります。コードファーストのために、それは次のようになります。

class User { 
    // user properties... 

    [ForeignKey("UserGroupID")] 
    public virtual Group Group { get; set; } 
} 

class Group { 
    // group properties... 
    public virtual ICollection<User> Users { get;set; } 
} 

次に、あなただけ呼び出すことができます。このチュートリアルでは

user.Group.GroupName 
+0

どうすればいいですか?すべてがグラフィカルなedmxファイルで定義されています。クラスは実際にどこに定義されていますか? – Kevin

+0

私はあなたがコードファーストを使用していると誤って考えていたのに対し、モデルファーストのアプローチを使用していると思います。グラフィカルツールを使用して関連付けを設定する方法については、http://msdn.microsoft.com/en-us/library/bb738477.aspxを参照してください。 – PinnyM

+0

OK関連付けを追加する方法はわかっています。設計時にグリッドをバインドすると、EntityDataSourceをUsersテーブルにポイントするとUserGroup外部キーテーブルを列として使用できますか? – Kevin

関連する問題