SqlBulkCopyのLINQクエリのデータウェアハウス

anonymous-types c# datareader linq sqlbulkcopy

質問

私はこのライブラリを使用しています:

EntityDataReaderへのリンク

データパレットやそのようなデータ構造を使用せずにデータを直接置くためのdatareaderを使用するsqlbulkcopyを使用して、XMLパースの一部のlinqクエリ結果をデータベースに格納します。

私はそれを実装することができません。

これは今まで私が書いたコードです。

XDocument xdoc = XDocument.Parse(str_XmlToParse);

            //ORDINI

            IEnumerable<XDocument> xdod;

            var orders = from c in xdoc.Descendants("ordersdata").AsEnumerable().Descendants("order").AsEnumerable()
                         select new
                         {
                             Client_ID = (string)c.Element("Client").Element("ID"),
                             Doc_ID = (string)c.Element("ord_ID"),
                             Doc_data = (DateTime)c.Element("ord_datetime"),
                         };
      IDataReader dr = orders.AsDataReader();

            using (SqlConnection con = new SqlConnection(connectionString))
            {
                con.Open();
                using (SqlTransaction tran = con.BeginTransaction())
                {
                    var newOrders =
                            from i in Enumerable.Range(0, totalToSend)
                            select new Order
                            {
                                customer_name = "Customer " + i % 100,
                                quantity = i % 9,
                                order_id = i,
                                order_entry_date = DateTime.Now
                            };

                    SqlBulkCopy bc = new SqlBulkCopy(con,
                      SqlBulkCopyOptions.CheckConstraints |
                      SqlBulkCopyOptions.FireTriggers |
                      SqlBulkCopyOptions.KeepNulls, tran);

                    bc.BatchSize = 1000;
                    bc.DestinationTableName = "order_queue";
                    bc.WriteToServer(newOrders.AsDataReader());

                    tran.Commit();
                }
                con.Close();

これは主にそのライブラリの例にあるもののコピーです。

私は彼らの奇妙な鋳造で何が起こっているのかを正確に理解していませんが、私はそれを働かせる必要があります。 (私は理解しようと私を信じて)

私はこのエラーが続いている:

エラー1 'System.Collections.Generic.IEnumerable AnonymousType#1>'に 'AsDataReader'の定義がなく、 'System.Collections.Generic.IEnumerable AnonymousType#1>'型の最初の引数を受け入れる拡張メソッド 'AsDataReader'はありません(使用しているディレクティブまたはアセンブリ参照がありませんか?)

それは何ですか?どうすれば修正できますか?

ありがとう

受け入れられた回答

基本的に、この定義ではメソッドが存在しないため、メソッド "AsDataReader"に "IEnumerable"オブジェクトを使用することはできません。それが役立つ場合は、参照をDLL "System.Data.Entity"とSystem.Data.EntityClientに追加してみてください



ライセンスを受けた: CC-BY-SA with attribution
所属していない Stack Overflow
このKBは合法ですか? はい、理由を学ぶ
ライセンスを受けた: CC-BY-SA with attribution
所属していない Stack Overflow
このKBは合法ですか? はい、理由を学ぶ