2013-08-01 115 views
1

我想連接兩個在下面的實體框架模型類控制器,用於覈算體系存在的因素在視圖連接兩個模型呈現在一個視圖中的MVC

<pre> 
namespace AccountingSystem.Models 
{ 
    public class BuyFactor 
    { 
     public int BuyFactorId { get; set; }   
     public DateTime CreateDate { get; set; }   
     public string Seller { get; set; } 
     public string Creator { get; set; } 
     public decimal SumAllPrice { get; set; } 
     public ICollection<BuyFactorDetail> BuyFactorDetails { get; set; } 
    } 
} 

namespace AccountingSystem.Models 
{ 
    public class BuyFactorDetail 
    { 
     public int BuyFactorDetailId { get; set; }   
     public int Number { get; set; } 
     public string Description { get; set; } 
     public decimal SumPrice { get; set; } 
     public int BuyFactorId { get; set; } 
     public virtual BuyFactor BuyFactor { get; set; }   
     public virtual Commodity Commodity { get; set; }   
    } 
} 
</pre> 

回答

1

創建新模型

public class JointModel 
{ 
    public BuyFactor BuyFactor {get; set;} 
    public BuyFactorDetail BuyFactorDetail {get; set;} 
} 
0

最佳方式在主要模式定義Model作爲Property

例如

public class BuyFactor 
{ 
    public int BuyFactorId { get; set; }   
    public DateTime CreateDate { get; set; }   
    public string Seller { get; set; } 
    public string Creator { get; set; } 
    public decimal SumAllPrice { get; set; } 
    public ICollection<BuyFactorDetail> BuyFactorDetails { get; set; } 
    public BuyFactorDetail BuyFactorEntity {get;set;} 
} 

分配的價值和使用作爲Model.BuyFactorEntity.BuyFactorDetailId

0

使用LINQ的連接查詢像

var query = (from b in context.BuyFactors 
        join d in context.BuyFactorDetail 
        on 
.. 
        select new 
        { 
         BuyFactorId = b.BuyFactorId, 
         .... 
         BuyFactorDetailId = d.BuyFactorDetailId, 
         ... 

    .. 
       })); 
0

你BuyFactor已經包含BuyFactorDetail集合。你確定這些實體是彼此1:N的關係嗎? 您可以使用BuyFactor作爲模型,並可以使用BuyFactor實體的BuyFactorDetails屬性。

0

在控制器中使用ViewBag爲兩者分配相應的對象。

ViewBag.BuyFactor= BuyFactor; 
ViewBab.BuyFactorDetail = BuyFactorDetail; 

要在視圖中使用它,你必須將它們轉換回來。

1

只需創建,然後另一個模式要求在那裏

public class ParentModel 
{ 
public BuyFactor BuyFactor {get; set;} 
public BuyFactorDetail BuyFactorDetail {get; set;} 
} 

其他模型因此,當你將它稱爲鑑於

@model IEnumerable<AccountingSystem.Models.ParentModel> 

    @Html.DisplayNameFor(model => model.BuyFactor.Creator) 
相關問題