在Views实体中使用外键关系

时间:2013-02-11 19:15:20

标签: asp.net-mvc entity-framework

是否可以单步执行模型的外键来访问View中的另一个模型?我想将一种类型的模型返回到我的视图中,但是从另一个模型中获取数据。例如,在我看来:

@[ModelObject].[Field (ForeignKey)].[ForeignKey Field]

修改

到目前为止,您的反馈很有帮助,听起来像是View Model可能是要走的路,但是请允许我提供更多信息,以便您可以提供更好的建议。

我有一个x.Id,我希望找到与Y相关联的所有x.Id个对象 - 此映射保存在表XYMap中,其中有几个{ {1}}映射到一个Y.Id。这两个模型都在同一个实体中:

X.Id

我试图做的是,public class X { [Key] public int xId {get; set;} } public class XYMap { [Key, ForeignKey("Y")] public int yId { get; set; } [ForeignKey("X")] public int xId { get; set; } } public class Y { [Key] public int yId { get; set; } } 名为x.Id

someXid

我想获取所有Y对象,以便我可以在视图中显示它们的数据。

1 个答案:

答案 0 :(得分:1)

这是可能的,但不推荐。也许导航属性是使用延迟加载设置的,并且从视图调用@ Model.NavigationalField会导致对数据库的调用。视图不应对这些类型的调用负责。

我建议创建一个ViewModel,它结合了两个实体所需的属性。