如果两个表都不包含主键,那么他们是否可以使用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);
}
}
我希望将BlogPost对象的Username属性映射到User表的username列。我可以使用设计器使用外键进行映射,但我不确定如何使用Code Only。我尝试在配置对象中使用两个MapHierarchy语句,但它看起来只有在两个表都使用相同的主键时才有效。
答案 0 :(得分:0)
我认为实体框架的当前状态不可能实现这一点。
为了进行实体拆分,你必须有一对一的映射(主键必须在两个表中)。
我的假设是错误的,因为你可以在设计器的第二个表中添加代码实际工作的列。尝试在EDMX中进行映射时遇到非常类似的错误,就像我在使用“仅代码”时一样。