我有一个用户和一个组织类。他们看起来像这样
public class User
{
public int UserId { get; set; }
public string UserName { get; set; }
public string Email { get; set; }
public string FirstName { get; set; }
public string LastName { get; set; }
public virtual ICollection<Organization> Organizations { get; set; }
}
public class Organization : EntityBase
{
public string Name { get; set; }
public string Description { get; set; }
public virtual ICollection<User> Users { get; set; }
}
并且两者都继承自 EntityBase 类以获取 Id 和创建/更新跟踪等常见字段。
public abstract class EntityBase
{
public int Id { get; set; }
public DateTime Created { get; set; }
public virtual User CreatedBy { get; set; }
public DateTime Updated { get; set; }
public virtual User UpdatedBy { get; set; }
}
正如两者的 ICollection 属性所表示的,应该存在多对多关系。但是,当我的数据库自动生成时,我的表中添加了不正确的外键
如果我将 CreatedBy 和 UpdatedBy 更改为字符串而不是 User 属性,我会得到一个连接表,这正是我正在寻找的。
这是一个简单的实体框架问题,我需要在使用流利的映射中提供多对多配置,还是我做错了什么?