私はasp.net mvcが初めてで、asp.net Webフォームで非常に簡単に解決できると思う問題があります。ただし、プロジェクトは mvc にある必要があるため、ここに問題があります。
Xテーブルを手に入れました
table1 ユーザー int user_ID 文字列 ユーザー名
table2 Friends int friendsID int user_ID int friend_ID
表 2 の user_ID は、現在ログインしているユーザーを表します。friend_ID は、友人の ID を表します。その一対多の関係。今私がやりたいことは、ユーザー/詳細/ID ビューで、そのユーザーのすべての友達を表示することです。私が作成したいクエリは次のとおりです。まず、user_ID = id (クエリ文字列から) の table2 から friend_ID を選択し、次に user_ID = friend_ID である table1 からすべてのユーザー名を選択します。
これは SQL では非常に簡単だと思いますが、mvc 構文でそれを行う方法がわかりません。
コントローラー:
// // GET: /ユーザー/詳細/5
public ViewResult Details(int id)
{
User user = db.Users.Find(id);
return View(user);
}
景色:
@model Social2.Models.User
<div class="display-label">Friends</div>
<div class="display-field">
@foreach (var friend in @Model.Friends)
{
@friend.User.username;
}
</div>
ビューは間違った結果を返します。
モデル
public partial class User
{
public User()
{
this.Albums = new HashSet<Album>();
this.Friends = new HashSet<Friend>();
this.Messages = new HashSet<Message>();
this.Posts = new HashSet<Post>();
this.Groups = new HashSet<Group>();
}
public int user_ID { get; set; }
public System.Guid user_UniqueID { get; set; }
public string username { get; set; }
public virtual ICollection<Album> Albums { get; set; }
public virtual aspnet_Users aspnet_Users { get; set; }
public virtual ICollection<Friend> Friends { get; set; }
public virtual ICollection<Message> Messages { get; set; }
public virtual ICollection<Post> Posts { get; set; }
public virtual ICollection<Group> Groups { get; set; }
}
そして友達のテーブルから
public partial class Friend
{
public int friendship_ID { get; set; }
public int user_fr_ID { get; set; }
public int friend_ID { get; set; }
public virtual User User { get; set; }
}
文脈も
public partial class ASPNETDBEntities : DbContext
{
public ASPNETDBEntities()
: base("name=ASPNETDBEntities")
{
}
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
throw new UnintentionalCodeFirstException();
}
public DbSet<Album> Albums { get; set; }
public DbSet<aspnet_Users> aspnet_Users { get; set; }
public DbSet<Friend> Friends { get; set; }
public DbSet<Group> Groups { get; set; }
public DbSet<Message> Messages { get; set; }
public DbSet<Picture> Pictures { get; set; }
public DbSet<Post> Posts { get; set; }
public DbSet<sysdiagram> sysdiagrams { get; set; }
public DbSet<User> Users { get; set; }
}