Как создать соединение с помощью petapoco MVC4

Мне нужно присоединиться к 2 таблицам, используя petapoco MVC4, моя таблица показана ниже

[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

person user3611564    schedule 15.05.2014    source источник


Ответы (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. Но просто начните с этого решения выше. Он должен работать. Надеюсь, это поможет

person Community    schedule 15.05.2014