0

現在、Web サービスで新しい注文 (以下に表示) を作成し、そのデータを送信して新しい行をデータベースに挿入しようとしています。何らかの理由で、DBML / データ コンテキストで InsertOnSubmit を使用できません。

何か案は?Linq to Sql を約 7 か月間使用していません。

前もって感謝します。

[WebMethod]
    public string InsertOrderToDatabases()
    {
        //Start Data Contexts ------
        DataContext db = new DataContext(System.Configuration.ConfigurationManager.AppSettings["RainbowCMSConnectionString"]);
        DataContext dcSqlOES = new DataContext(System.Configuration.ConfigurationManager.AppSettings["OESConnectionString"]);

        //Get table from local database
        Table<Schedule> Schedule = db.GetTable<Schedule>();

        //Find last order number in databases
        var lastOrderNumber = from lOrder in Schedule
                              orderby lOrder.templ_idn descending
                              select lOrder.templ_idn;

        int firstOrderID;
        var firstOrder = lastOrderNumber.FirstOrDefault();
        firstOrderID = firstOrder.Value + 1;

        qrOrder qrOrd = new qrOrder
        {
            .... data in here creating a new order

        };

        //TODO: fix below with an insert on submit
        if (qrOrd != null)
        {
        //    **Schedule.InsertOnSubmit(qrOrd);**
        }
        //db.GetTable<Schedule>().InsertOnSubmit(qrOrd);

        try
        {
            //Submit the changes to the database
            db.SubmitChanges();
            return "Orders were sent to the databases.";
        }
        catch ()
        {

        }
    }
4

3 に答える 3

1

回答によると、間違ったテーブルを使用しているか、間違ったデータ型を使用しているようです。Scheduleまた、ローカル変数を宣言するときに、それを type として宣言していることにも気付きました。これは、エンティティではなく、エンティティTable<Schedule>を含む必要があることを意味します。ScheduleqrOrder

Table<TEntity>.InsertOnSubmit特定の厳密に型指定されたエンティティが渡されることを期待しています。あなたの場合、期待してWeb_Service.Schedul‌eいますが、qrOrder.

于 2012-08-27T19:48:05.040 に答える
0
 Schedule.InsertOnSubmit(qrOrd);

その行は、接続されたエンティティへの変更を送信することを扱いません。これを試してください

    db.Schedule.InsertOnSubmit(qrOrd);
    db.SubmitChanges();
于 2012-08-27T19:45:21.013 に答える
0

あなたは試すことができます

db.GetTable(typeof(Schedule)).InsertOnSubmit(qrOrd);

または

 db.GetTable(qrOrd.GetType()).InsertOnSubmit(qrOrd);
于 2012-08-27T19:47:28.593 に答える