如何将列映射到实体框架中的另一个表?

时间:2014-08-09 17:12:15

标签: c# asp.net asp.net-mvc entity-framework entity-framework-6

假设我有两个班级,

public class UserBio {
        [Key]
        public string Id { get; set; }
        [Required]
        [Display(Name = "First Name")]
        public string FirstName { get; set; }
        [Required]
        [Display(Name = "Last Name")]
        public string LastName { get; set; }
      }





 public class UserPosts
        {
            [Key]
            public int PostId { get; set; }
            public string CreatedBy { get; set; }
            public string Description { get; set; }
        }

我的问题是,如何将UserPosts中的CreatedBy映射到UserBio中的Id属性?我知道一种方法是用UserBio替换CreatedBy的数据类型。但由于某些问题,这似乎不是一个好主意。我想将CreatedBy作为字符串插入,在检索过程中,UserPosts还包含用户的UserBio。 你能帮我解决这个问题吗?我必须使用Fluent api吗?或者我可以用数据注释实现吗?

2 个答案:

答案 0 :(得分:1)

我正在使用Designer从数据库创建我的类,但我相信这将适合您的情况。我认为您需要做的是在UserBio类型的UserPosts类中创建一个公共虚拟属性。

 public virtual UserBio users { get; set; }

访问UserPost时,您可以引用创建帖子的用户。然后我将摆脱createdBy属性,因为不再需要它了。

答案 1 :(得分:0)

 public class UserPosts
 {
     [Key]
     public int PostId { get; set; }

     [ForeignKey("User")]
     public string CreatedBy { get; set; }
     public virtual UserBio User { get; set; }

     public string Description { get; set; }
 }