对标题感到抱歉;我想不出更好的一个。
无论如何,我正在我的视图中访问相关的属性:
@Model.Company.CompanyName // No problems here...
该模型是映射到EF POCO的视图模型。 Model具有与Company表关联的多个属性。模型中只有一个属性与Company表中的PK共享相同的名称。所有其他属性引用相同的表:
public class MyModelClass
{
public int Id { get; set; }
public int CompanyId { get; set; }
public int AnotherCompanyId { get; set; } // References CompanyId
public int AndAnotherCompanyId { get; set; } // References CompanyId
public Company Company { get; set; }
}
public class Company
{
public int CompanyId { get; set; }
public string CompanyName { get; set; }
public string Address { get; set; }
}
我显然在这里遗漏了一些东西。
如何在我的模型中获取其他公司的名称?
非常感谢任何帮助。
答案 0 :(得分:0)
该模型是映射到EF POCO的视图模型
我认为你混淆了视图模型的概念。视图模型是专门为满足视图要求而设计的类。因此,如果您在视图中需要显示公司名称而不是公司ID,那么您的视图模型应直接包含CompanyName
属性。或者直接包含名称的另一个视图模型(CompanyViewModel
)的引用。然后,您的控制器操作负责查询您的域模型(EF实体)并将它们聚合到单个视图模型中,该模型将包含视图所需的所有必要信息。
以下是典型视图模型的外观:
public class MyViewModel
{
public CompanyViewModel Company { get; set; }
public CompanyViewModel AnotherCompany { get; set; }
public CompanyViewModel AndAnotherCompany { get; set; }
}
public class CompanyViewModel
{
public string Name { get; set; }
}
此视图模型中的数据来源并不重要。您可以从EF内容填充Company属性,从XML文件填充AnotherCompany属性,从WCF填充AndAnotherCompany。