如何访问数据库中按实体框架自动创建的外键列?

时间:2019-01-15 10:58:50

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

我有两个模拟人生和用户。用户与Sims具有1-M关系,即Sims在Sims中具有类型为Users的导航属性。它会自动在数据库的Sims表中创建一个foregin键Users_ID,这不是我的模型的一部分。

现在的问题是,我想获得与Sims相匹配的Sims,比如说Users_ID = 1,但是我无法访问在Sims表中创建的列。

我尝试过:

                Users user = new Users();
                user.Name = "Hunain";

                int id = UsersPhonesDBContext.Users.Where(u => u.Name == "Hunain").FirstOrDefault().ID;
                Sims Sims1 = new Sims { Code = "Code0+ " + user.Name };
                Sims Sims2 = new Sims { Code = "Code0+ " + user.Name };

                UsersPhonesDBContext.Sims.Add(Sims1);
                UsersPhonesDBContext.Sims.Add(Sims2);
                int r = UsersPhonesDBContext.SaveChanges();

这有效,但它将users_id在数据库中保存为null。

型号:

Sims:

public class Sims
    {
        public int ID { get; set; }
        public string Code { get; set; }
    }

用户:

 public class Users
    {
        public int ID { get; set; }
        public string Name { get; set; }
        public List<Phones> Phones { get; set; }
        public List<Sims> Sims { get; set; }
    }

该怎么办?

更新:

我的问题有所不同,而且被标记为重复项的解决方案已经过时,可能不适用于当前版本。

0 个答案:

没有答案