我是 asp.net mvc 的新手,我有一些问题,我想我可以用 asp.net 网络表单很容易地解决它们。但是项目必须在 mvc 中,所以这就是问题所在。
我有 X 表
table1 用户 int user_ID string 用户名
table2 Friends int FriendshipID int user_ID intfriend_ID
在表 2 中,user_ID 代表当前登录的用户。friend_ID 代表他朋友的 id。它的一对多关系。现在我想做的是,在用户/详细信息/ID 视图中,显示该用户的所有朋友。我要进行的查询是:首先从 table2 中选择朋友 ID,其中 user_ID = id(来自查询字符串),然后从 table1 中选择每个用户名,其中 user_ID = 朋友 ID。
我认为这在 SQL 中真的很容易,但不知道如何使用 mvc 语法来做到这一点。
控制器:
// // 获取:/用户/详细信息/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; }
}