首先我有两个类public class User
    {
        public int UserID { get; set; }
        public string UserName { get; set; }
        public string UserPwd { get; set; }
        public List<Message> Messages { get; set; }
    }
public class Message
    {
        public int MessageID { get; set; }
        public string Content { get; set; }        public virtual User User { get; set; }
    }
 生成的数据库表中  message表中会有个外键 User_UserID 
我怎么给这个字段赋值? 
我直接这样写 
model.User.UserID =new User(){ UserID = X }  
然后 Add() SaveChanges();  发现数据库里面User_UserID 字段存的不使我设置的X的值,而是自增值  2 3 4 5 6 7 8 9 之类的  
求大神呀  我该怎么正确给 User_UserID 字段 存值?MVCEntity Framework

解决方案 »

  1.   

    你的user对象必须在context里,不然都认为是新的
    建议你先查出这个user再赋值
      

  2.   


    var user=new User(){ UserID = 22 }  ;
    db.Users.Add(user);
    db.SaveChanges();
    model.User=user;
    db.Message.Add(model);
    db.SaveChanges();
      

  3.   

     
    model.User=db.User.Find(X);
    db.Message.Add(model);
    db.SaveChanges();
      

  4.   


    谢谢版主大人,没想到我问题描述错了也能得到版主提供的正确答案,谢谢。。
    题目中的 model.User.UserID =new User(){ UserID = X }   应描述为 model.Message.UserID =new User(){ UserID = X }    由于是临时构造的例子,所以写错了。。 - -改用版主的代码后正确插入了数据,非常感谢。