[英]Add additional property to application user ASP.NET MVC
我正在学习ASP.NET MVC 5和EF。 我希望每个注册用户都能够创建其所属项目的简单列表。
所以我在Model
文件夹中有一个Item
类:
class Item
{
public int Id {get; set;}
public string Name {get; set;}
}
如何使用代码优先方法更新数据库,以便用户可以拥有Items
表的外键,以便可以查询属于当前用户的所有项?
Select *
From Items
Where userID = currentUserID
您将需要将item
作为单独的entity(Model)
然后与user
建立关系。 当您使用这种方法时,EF会创建各自的表及其关系(一对多,即一个用户可以有多个实体)。
这是其在代码中的实现方式。
物品类别
public class Item
{
public int Id {get; set;}
public string Name {get; set;}
//foreign key
public int UserId {get; set;}
//Navigation property
public virtual ApplicationUser User{get; set;}
}
应用程序用户类别
public class ApplicationUser : IdentityUser
{
//Here you can add more properties if you wish to
public string FirstName{ get; set; }
public string LastName { get; set; }
//User-Item relationship (user can have many Items)
public virtual List<Item> Items { get; set; }
}
然后,您将必须转到ApplicationDbContext
并添加Item
DbSet
,如下所示
public class ApplicationDbContext : IdentityDbContext<SchedulerUser>
{
public virtual DbSet<Item> Items { get; set; }
//some code are excluded for clarity
}
要获取属于用户的所有项目的列表,可以使用linq进行查询,例如
var _db = new ApplicationDbContext();
var Items = _db.Users.Find(UserId).Items.ToList();
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.