在ASP.NET MVC 5中,可以使用Entity Framework来处理标识表和其他表之间的关系。下面是一个包含代码示例的解决方法:
public class User
{
public int UserId { get; set; }
public string UserName { get; set; }
public virtual ICollection Orders { get; set; }
}
public class Order
{
public int OrderId { get; set; }
public string OrderName { get; set; }
public int UserId { get; set; }
public virtual User User { get; set; }
}
public class ApplicationDbContext : DbContext
{
public DbSet Users { get; set; }
public DbSet Orders { get; set; }
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
modelBuilder.Entity()
.HasRequired(o => o.User)
.WithMany(u => u.Orders)
.HasForeignKey(o => o.UserId)
.WillCascadeOnDelete(false);
}
}
在上述代码中,我们使用Fluent API来定义Order表和User表之间的关系。具体来说,我们使用HasRequired方法指定Order表必须与User表相关联,使用WithMany方法指定一个用户可以有多个订单,使用HasForeignKey方法指定外键属性,使用WillCascadeOnDelete方法禁止级联删除。
public class UserController : Controller
{
private readonly ApplicationDbContext _context;
public UserController()
{
_context = new ApplicationDbContext();
}
public ActionResult Index()
{
var users = _context.Users.Include(u => u.Orders).ToList();
return View(users);
}
}
在上述代码中,我们使用_context.Users.Include(u => u.Orders)来在获取用户列表的同时,也加载每个用户的订单列表。
@model List
@foreach (var user in Model)
{
@user.UserName
@foreach (var order in user.Orders)
{
- @order.OrderName
}
}
在上述代码中,我们使用Model来获取用户列表,并使用foreach循环来显示每个用户的用户名和订单列表。
通过以上步骤,我们可以在ASP.NET MVC 5中成功处理标识表和其他表之间的关系,并将其显示在视图中。