Можно ли использовать Entity Framework Code-Only, чтобы иметь сущность, имеющую поля из двух таблиц, если обе таблицы не содержат первичный ключ?
Вот пример.
public class BlogPost
{
public int PostID { get; set; }
public String PostBody { get; set; }
public int UserID { get; set; }
public string Username { get; set; }
}
public class User
{
public int UserID { get; set; }
public String Username { get; set; }
}
public class BlogPostConfiguration : EntityConfiguration<BlogPost>
{
public BlogPostConfiguration()
{
HasKey(b => b.PostID);
}
}
public class UserConfiguration : EntityConfiguration<User>
{
public UserConfiguration()
{
HasKey(b => b.UserID);
}
}
Я хочу, чтобы свойство Username объекта BlogPost было сопоставлено со столбцом username таблицы User. Я могу сделать сопоставление, используя внешний ключ, используя конструктор, но я не уверен, как это сделать, используя только код. Я попытался использовать два оператора MapHierarchy в своем объекте конфигурации, но похоже, что это работает, только если в обеих таблицах используется один и тот же первичный ключ.