0

プロジェクトasp.netで作業しています。MVC 4 コントローラーで関数を返す必要がありJsonます。これは私の機能です:

public JsonResult DatosVehiculo(GridSettings grid, string IdReclamo){
...
List<cSindVehiculo> lDvehiculo = Servicio.RetornaDatos<cSindVehiculo>(ref Mensaje, "crdsis.sin_dvehiculo", dvehiculo.Where(), dvehiculo);
var count = DatosVehiculo.Count();
var data = DatosVehiculo.Skip((grid.PageIndex - 1) * grid.PageSize).Take(grid.PageSize).ToArray();
var jsonData = new{
    total = (int)Math.Ceiling((double)count / grid.PageSize),
    page = grid.PageIndex,
    records = count,
    rows = (
           from m in data
           select new {
                id = m.sdv_idreclamo,
                cell = new object[] {
                  m.sdv_idreclamo,
                  m.sdv_parpieza,
                  m.sdv_parcodclase
                }
           });.ToArray()
});
return Json(jsonData, JsonRequestBehavior.AllowGet);
}

この形式で返されます。次に例を示します。

sdv_idreclamo  sdv_parpieza  sdv_parcodclase
LP13000394         001           AC
LP13000394         002           CR

しかし、グリルでは最終的なユーザーを理解していません。これで表示する必要があります。

sdv_idreclamo  sdv_parpieza  sdv_parcodclase
LP13000394     AMORTIGUADOR    ACCESORIOS
LP13000394    BOMBA DE ACEITE  CARROCERIA

しかし、この説明は他の表"crdsis.cfg_parametros"にあります。

cp_idparametro    cp_descparametro    cp_tipoparametro
0001              AMORTIGUADOR        PIEZA
0002              BOMBA DE ACEITE     PIEZA
AC                ACCESORIOS          CODCLASE
CR                CARROCERIA          CODCLASE

選択すると、これを取得できます。

SELECT
   crdsis.sin_dvehiculo.sdv_idreclamo,
   (select crdsis.cfg_parametros.cp_descparametro from crdsis.cfg_parametros where (crdsis.sin_dvehiculo.sdv_parpieza = crdsis.cfg_parametros.cp_idparametro) and crdsis.cfg_parametros.cp_tipoparametro = 'PIEZA') as sdv_parpieza,
   (select crdsis.cfg_parametros.cp_descparametro from crdsis.cfg_parametros where (crdsis.sin_dvehiculo.sdv_parcodclase = crdsis.cfg_parametros.cp_idparametro) and crdsis.cfg_parametros.cp_tipoparametro = 'CODCLASE') as sdv_parcodclase
from crdsis.sin_dvehiculo
where sdv_idreclamo = 'LP13000394'

public JsonResult DatosVehiculoこの形式を返すように関数を変更する必要があります。で変更するにはどうすればよいLinqですか?

4

1 に答える 1

0

あなたが投稿したものに基づいて、LINQステートメントが属していると思います:

Servicio.RetornaDatos<cSindVehiculo>(ref Mensaje, "crdsis.sin_dvehiculo", dvehiculo.Where(), dvehiculo)

詳細がなければ、あなたの質問に答えるのは難しいです。ページの LINQ ステートメントでの結果を確かに使用できますがReturnoDatos、それはこの機能にとって不適切なレイヤーだと思います。

于 2013-03-14T21:20:12.430 に答える