如何使用petapoco MVC4创建加入

时间:2014-05-15 13:08:37

标签: mysql sql asp.net-mvc-4 petapoco

我需要使用petapoco MVC4加入2桌 我的表格如下所示

[TableName("District")]
[PrimaryKey("nDistrictID")]
public class District
{   
    public int nDistrictID { get; set; }
    public string cDistrictName { get; set; }
    public bool bActive { get; set; }
    public int nStateID { get; set; }
}

状态表

[PetaPoco.TableName("States")]
[PetaPoco.PrimaryKey("nStateID")]
public class States
{
    public int nStateID { get; set; }
    public string cStateName { get; set; }      
}

我需要这种形式的查询

select d.cDistrictName,s.cStateName, d.nStateID from District
       d inner join States s on d.nStateID=s.nStateID

1 个答案:

答案 0 :(得分:1)

我假设您已经有一个dataContext,其中包含每个类的2个DbSet。关于你可以使用: 关于您期望的结果,您可以创建一个与结果匹配的新类:

public class DistrictWithState
{
  public string cDistrictName {get;set;}
  public string cStateName {get; set;}
  public int nStateId {get;set;}
} 

然后在你的行动中:

  var dataContext = new PetaPoco.Database("mysql"); 
  var sql="select d.cDistrictName,s.cStateName, d.nStateID from District
   d inner join States s on d.nStateID=s.nStateID";

  var districts = db.Fetch<DistrictWithState>(sql);

 return view(districts);

使用dynamic关键字还有另一种解决方案。但是从上面的解决方案开始吧。它应该工作。我希望它会有所帮助