10

LinQを使用してクエリを記述し、CopyToDataTableメソッドを使用しました。その行では、データベースタイプからへの暗黙の変換タイプエラーが表示されていますSystem.Data.DataRow

var query = from i in dbContext.Personaldetails
            where i.ID == 1
            select i;

            return query.CopyToDataTable();

助言がありますか?

4

1 に答える 1

5

CopyToDataTableDataRowオブジェクトのコレクションが必要です。この問題を解決するには、 「方法:ジェネリック型TがDataRowではない場合にCopyToDataTableを実装する」を参照してください。

更新:エンティティにnull許容フィールドがある場合は、ObjectShredder.ExtendTableメソッドを変更できます。新しい列がテーブルに追加される場所を見つけ、列のデータ型を提供する2番目のパラメーターを削除します(DataColumnクラスはnull許容データ型をサポートしていません)。

foreach (PropertyInfo p in type.GetProperties())
{
    if (!_ordinalMap.ContainsKey(p.Name))
    {
        DataColumn dc = table.Columns.Contains(p.Name) ? table.Columns[p.Name]
            // do not provide column type
            : table.Columns.Add(p.Name); 

        _ordinalMap.Add(p.Name, dc.Ordinal);
    }
}
于 2012-05-16T12:36:08.653 に答える