c# - 不同 DbContext 之间的一对多
问题描述
有两个实体:用户(帖子的作者)和帖子
public class ApplicationUser : IdentityUser<int>
{
public virtual IEnumerable<Post> Posts { get; set; }
}
public class Post
{
public int Id { get; set; }
public int AuthorId { get; set; }
public virtual ApplicationUser Author { get; set; }
}
和他们的两个 DbContext
public class AppIdentityContext : IdentityDbContext<ApplicationUser, IdentityRole<int>, int>
{
public AppIdentityContext(DbContextOptions<AppIdentityContext> options) : base(options) { }
}
public class ForumContext : DbContext
{
public ForumContext(DbContextOptions<ForumContext> options) : base(options) { }
public DbSet<Post> Posts { get; set; }
protected override void OnModelCreating(ModelBuilder builder)
{
builder.Entity<Post>(ConfigurePost);
}
private void ConfigurePost(EntityTypeBuilder<Post> builder)
{
// Author is ApplicationUser from AppIdentityContext
// As far as I know, this won't work
builder.HasOne(p => p.Author)
.WithMany(u => u.Posts)
.HasForeignKey(p => p.AuthorId);
}
}
在这种情况下,我可以以某种方式Post.Author
使用 EF Core 配置字段的自动填充吗?
PS我找到了这个(似乎是解决方案),但我不明白。
https://github.com/aspnet/EntityFrameworkCore/issues/4595#issuecomment-189534388
解决方案
推荐阅读
- python - 如何根据kivy列表中的值数生成按钮?
- sql - SQL Server:NULL 还是空字符串?
- excel - 我需要一个公式来返回开头有大写字母和结尾有数字的范围内的单元格
- mysql - 从 MySQL 获取股市数据并向所有用户显示的最佳方法?
- python - /check-out 处的 TypeError 获取 dict 值,但我想要 dict 和指定值
- laravel - 在 Laravel 中发送 GSuite 电子邮件
- material-ui - Material-UI 的列表组件不起作用。检查元素时没有显示任何列表代码
- php - 如何在 laravel 中使用 get 查询生成器遍历标签
- apache-spark - 在 pyspark 数据框中添加日期
- python - 在 Heroku 中上传 CSV 和 CSV 的 Flask 应用程序中的 KeyError