我有一个包含多个外键关系的单一位置表。它具有状态表、城市表、国家表和用户表的外键。现在我在 Entity 框架中正确映射了表模型,但是如果我尝试访问 Location 表中的外键 id 字段以添加新的外键映射,我无法访问它,而是得到一个 Reference 字段,例如StateReference .
现在我发现一些文章说,只需使用 entitykey.StateReference。我试过了,它可以工作,但对我来说似乎很笨拙。我注意到的是,它还为我提供了一个字段 State 而不是 StateID。因此,据此我假设人们只能将状态名称传递给 Location 对象,而实体框架几乎会自动计算出这种关系。我无法在任何地方找到或找出正确的语法。
如果我在这里偏离基地,有人可以指出正确的方向并纠正我吗?我已经为此苦苦挣扎了一段时间,似乎无法理解。或者,如果我说的是正确的,有人可以给我一些基本代码来显示语法。我正在 VS2010 中制作 Web 服务,所以如果我理解正确,我将使用 ef v1。下面是我的位置对象的代码。
using(Entities context = new Entities())
{
Location NewLocation = new Location
{
//In SQL all three of these field are acutally foreign key ids I am
trying to maintian
State = context.States.Where(i => i.State1.Equals(AddedState)),
Country = context.Countries.Where(i => i.State1.Equals(AddedCountry)),
City = context.Cities.Where(i => i.City1.Equals(AddedCity)),
}
};
context.AddToLocation(NewLocation);
context.SaveChanges();
}