モデル:は、暗黙的にC#でクラスのプロパティに型」System.Collections.Generic.Listを変換できません
public class DataResult<T>
{
public List<T> ViewResults;
}
public class oGateEntryViewModel
{
public DataResult<GateEntryModels> oListGateEntryModels { get; set; }
}
コントローラ:私はシングルに複数のリストの結果をラップしようとしている
GateEntryViewModel oGateEntryViewModel = new GateEntryViewModel();
IGateEntryBC oIGateEntryBC = new GateEntryBC();
oGateEntryViewModel.oListGateEntryModels = oIGateEntryBC.oGetGateEntryData(); --Error
return View(oGateEntryViewModel);
oIGateEntryBC.oGetGateEntryData(); -> This method is returning the list Results.
public List<GateEntryModels> oGetGateEntryData()
{
DataAdapters oDataAdapters = new DataAdapters();
List<DataParameters> oListparams = new List<DataParameters>();
DataParameters oDataparam;
oDataparam = new DataParameters("@TYPE", SqlDbType.Int, (Int32)GateEntryEntities.EnumGateEntry.GateEntryList);
oListparams.Add(oDataparam);
DataTable dtList= oDataAdapters.GetData<DataTable>(oListparams, "PROC_GATEENTRY");
return dtList.AsEnumerable().Select(i => new GateEntryModels()
{
GEID = int.Parse(i["GE_ID"].ToString()),
GE_NO = i["GE_NO"].ToString(),
TRANSPORTER = i["TRANSPORTER"].ToString()
}).ToList();
}
モデルを作成し、モデルをバインドして表示します。リストの値をoListGateEntryModels
プロパティに代入しようとしたときに、エラーがスローされました。これをどうやって解決するのですか?
エラー:
Cannot implicitly convert type '
System.Collections.Generic.List<TS.Models.GateEntryModels>
' to 'TS.Models.DataResult<TS.Models.GateEntryModels>
'
これは、コンパイル?ビューとして返すようにしようとしているoGateEntryModelsオブジェクトは表示されません。ただし、最も明らかな型の問題は、コンパイラがListを暗黙的にDataResult に変換することを期待していることです。変換を処理する拡張メソッドを記述することができます。オブジェクト継承チェーンに応じて明示的に変換することも、明示的キャストを受け入れることもできます。ViewModelで型を更新するだけでも可能です。 –
ハンガリー語表記法( "oIGateEntryBC'"の "o'")を古いものにすると、C#開発者が通常はそれを見ないようにコードを読みにくくなります。 –
私はこのようなオブジェクトを作成するために使用しました。クラスオブジェクトと変数の違いを特定するためです。 –