我正在创建我的第一个MVC 2应用程序。我已经按照我的书中的示例进行了操作,并创建了一个自动生成model.edms和model.designer.cs文件的ADO.NET实体数据模型。然后我在我的模型文件夹中创建了一个repository.cs文件来存储我的检索数据的方法。当我使用这些方法从表中检索对象时,foriegn键属性返回null。这是我的一种方法
private LanTracerEntities2 entities = new LanTracerEntities2();
public Employee FindEmployee(string empId)
{
var emp = from employee in entities.Employees
where employee.LogIn == empId
select employee;
return emp.FirstOrDefault();
}
employee表包含以下列: ID EmpFName EmpLName EmpInitial 电话 登录 电子邮件 LOCID
LocID是一个将其链接到Location表的foriegn键。当我运行该方法时,它返回除LocID之外的每个属性的值。 LocID为null。表格中有数据。这不是我唯一为foriegn键属性返回null的对象。如何获取返回FK值的方法?
答案 0 :(得分:0)
看起来你正在与错误的财产进行比较?给定参数的名称我认为您可能希望与员工的ID进行比较:
var emp = from employee in entities.Employees
where employee.ID == empId
select employee;
说过你的主键应该是数字int / bigint - 如果是这样的话就改为:
int id = Convert.ToInt32(empId);
var emp = from employee in entities.Employees
where employee.ID == id
select employee;
如果您想将“位置”作为查询结果的一部分,您可以明确要求:
var emp = from employee in entities.Employees.Include("Location")
..
这将在您检索员工记录时填充Location
属性。