【发布时间】:2020-04-09 22:41:07
【问题描述】:
所以我正在尝试构建一个简单的聊天应用程序。
我有一个实现 IdentityUser 的用户类:
public class User : IdentityUser
{
public IEnumerable<Message> Messages { get; set; }
}
我还有一个来自用户的接收者和发送者:
public class Receiver : User
{
}
和
public class Sender : User
{
}
最后我有一个班级留言: 一条消息有 1 个发送者和 1 个接收者。
public class Message
{
public int Id { get; set; }
public string SenderId { get; set; }
public string ReceiverId { get; set; }
public virtual Sender Sender { get; set; }
public virtual Receiver Receiver { get; set; }
public string Text { get; set; }
public byte[] File { get; set; }
public DateTime Date { get; set; }
}
这些是我的 DbSet:
public DbSet<User> Users { get; set; }
public DbSet<Receiver> Receivers { get; set; }
public DbSet<Sender> Senders { get; set; }
public DbSet<Message> Messages { get; set; }
这是我的 OnModelCreating:
protected override void OnModelCreating(ModelBuilder builder)
{
base.OnModelCreating(builder);
builder.Entity<Message>()
.HasOne(m => m.Receiver)
.WithMany(r => r.Messages)
.HasForeignKey(m => m.ReceiverId);
builder.Entity<Message>()
.HasOne(m => m.Sender)
.WithMany(s => s.Messages)
.HasForeignKey(m => m.SenderId);
}
所以我的问题是......有没有更好的方法来实现这些类?有什么办法只能使用 User 类而不是 Receiver 和 Sender 类?
谢谢!
【问题讨论】:
标签: asp.net entity-framework asp.net-core entity-framework-core