2013-08-01 64 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) 
相关问题