1

嘿,那里,我是新来的MVC3和EF 4.1,并试图创建一个结构,其中我的ViewModel包含一个嵌套的对象的集合表示。我想知道如果EF 4.1处理这种情况。我已经做了一些阅读,甚至找不到用于搜索的术语。基本上我想要做的是基于不同领域模型的部分创建一个ViewModel。所以这样的事情是我的嵌套的模型和底部是我想要的视图模型:将嵌套对象属性映射到一个ViewModel与EF 4.1

class ModelA 
    property one 
    property two 
    property three 

class ModelB 
    property eh 
    property be 
    property cee 
    property ModelC modC 

class ModelC 
    property une 
    property deux 
    property trois 
    property ModelD modD 

class ModelD 
    property x 
    property y 
    property z 


class ShowStuffViewModel 
    property one 
    property two 
    property be 
    property trois 
    property y 
    property z 

我一直在想,我有这个概念错了,但最终我希望能够将属性映射自动降通过命名约定从我的ViewModel嵌套表,无论属性的居住级别如何。通过这种方式,我不需要携带大量的对象,因为我只需要每个对象的几个数据点。我还想通过查询两个基本模型ModelA和ModelB来进行LINQ调用来填充ViewModel属性,然后将值直接分配给ViewModel。

请原谅,因为我刚刚开始我的OOP MVC等旅程和任何帮助或指导非常感谢newb细节!

干杯!

回答

1

您正在寻找的术语叫投影。我不明白ModelA是如何与其他模型相关的,因此我将在示例中跳过它,但对于其他模型,您可以简单地创建此查询:

var query = from b in context.ModelBs 
      // some join for ModelA here? 
      // Models must be related if you want to load them with single query 
      select new ShowStuffViewModel 
       { 
        be = b.be, 
        trois = b.ModelC.trois, 
        y = b.ModelC.ModelD.y, 
        z = b.ModelC.ModelD.z 
       };