【发布时间】:2020-10-31 02:58:41
【问题描述】:
我有 2 个模型和一个相交模型。
我想使用 Linq Lambda 表达式为特定 Ticket Id 提取 Ticket 和共同响应 Users /p>
模型 1:票
public class Ticket
{
public int Id { get; set; }
public string Title { get; set; }
public ICollection<UserTicket> UserTickets { get; set; }
}
模型 2:用户
public class User : IdentityUser
{
// Id: string, UserName: string Automatic generated by ASP.NET Core Identity
public string Gender { get; set; }
public string Phone { get; set; }
public ICollection<UserTicket> UserTickets { get; set; }
}
相交模型:UserTicket
public class UserTicket
{
public string UserId { get; set; }
public User User { get; set; }
public int TicketId { get; set; }
public Ticket Ticket { get; set; }
}
数据库上下文:
public class DataContext : IdentityDbContext<User>
{
public DataContext(DbContextOptions<DataContext> options) : base(options) {}
// public DbSet<User> Users { get; set; } ****Using IdentityDbContext
public DbSet<Ticket> Tickets { get; set; }
public DbSet<UserTicket> UserTickets { get; set; }
protected override void OnModelCreating(ModelBuilder builder)
{
base.OnModelCreating(builder);
builder.Entity<UserTicket>().HasKey(ut => new { ut.UserId, ut.TicketId });
builder.Entity<UserTicket>()
.HasOne(t => t.Ticket)
.WithMany(t => t.UserTickets)
.HasForeignKey(t => t.TicketId);
builder.Entity<UserTicket>()
.HasOne(t => t.User)
.WithMany(t => t.UserTickets)
.HasForeignKey(t => t.UserId);
}
}
我在这个领域非常初学者,尝试了很多,但无法解决这个问题。 请帮帮我。
【问题讨论】:
标签: c# asp.net linq asp.net-core entity-framework-core