リーダーデータをドメインオブジェクトにダンプするために必要な通常の退屈な「左/右」コーディングを行う「BuildEntity」と呼ばれる非常に単純なマッピング関数があります。(以下に表示)私の質問はこれです-このマッピングのすべての列をそのまま戻さないと、「System.IndexOutOfRangeException」例外が発生し、ado.netにこれを修正するものがあるかどうかを知りたいので、 SQLを呼び出すたびにすべての列を戻す必要があります...
私が本当に探しているのは「IsValidColumn」のようなものなので、DataAccessクラス全体でこの1つのマッピング関数を維持し、すべての左/右マッピングを定義できます。また、sprocがリストされているすべての列を返さない場合でも機能します。 ..
Using reader As SqlDataReader = cmd.ExecuteReader()
Dim product As Product
While reader.Read()
product = New Product()
product.ID = Convert.ToInt32(reader("ProductID"))
product.SupplierID = Convert.ToInt32(reader("SupplierID"))
product.CategoryID = Convert.ToInt32(reader("CategoryID"))
product.ProductName = Convert.ToString(reader("ProductName"))
product.QuantityPerUnit = Convert.ToString(reader("QuantityPerUnit"))
product.UnitPrice = Convert.ToDouble(reader("UnitPrice"))
product.UnitsInStock = Convert.ToInt32(reader("UnitsInStock"))
product.UnitsOnOrder = Convert.ToInt32(reader("UnitsOnOrder"))
product.ReorderLevel = Convert.ToInt32(reader("ReorderLevel"))
productList.Add(product)
End While