2009-12-23 57 views
1

是他们使用实体框架代码只是为了有一个具有两个表中的字段的实体如果两个表不包含主键的方法吗?实体分割与代码只

这里是一个例子。

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); 
    } 
} 

我想要的博客帖子对象的用户名属性被映射到用户表的用户名的列。我可以使用设计器使用外键进行映射,但我不确定如何使用Code Only执行此操作。我尝试在配置对象中使用两个MapHierarchy语句,但它看起来像只有在两个表都使用相同的主键时才起作用。

+1

你见过从pdc09约EF这个 http://microsoftpdc.com/Sessions/FT10演示?如果不是 - 请看看它。 – 2009-12-25 11:48:04

+0

感谢亚历山大,该视频是伟大的,但遗憾的是它并没有解决实体分割。对于任何进入EF的人都强烈推荐观看。 – TonyB 2009-12-28 20:24:12

回答

0

我不认为这是可能的实体框架的当前状态。

为了做到,你必须有一个1对1的映射实体分裂(主键必须是两个表中)。

我是不正确的和我的假设,因为你可以从第二个表中的代码将实际工作的设计师添加列追问。当我尝试在EDMX中执行映射时,出现非常类似的错误,就像我在使用仅限代码时一样。