私は "BuildEntity"と呼ばれる非常に単純なマッピング関数を持っています。これは、読者データを自分のドメインオブジェクトにダンプするのに必要な通常の退屈な "左/右"コーディングを行います。私はこのマッピングのすべての列を元に戻すことができない場合、 "System.IndexOutOfRangeException"例外を取得し、ado.netにこれを修正する何かがあるかどうかを知りたいと思ったので、すべての列をSQLに呼び出すたびにすべての列を返す必要があります...ADO.NET SQLDataReaderからドメインオブジェクトへのマッピング?
私が実際に探しているのは「IsValidColumn」のようなものなので、DataAccessクラス全体でこの1のマッピング機能をすべての左/右定義されたマッピング - とのSPROCが記載されているすべての列が返されない場合でも、それが機能している...あなたがLinqToSqlを使用していないのはなぜ
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