0

将来コードを簡単に変更できるようにするために、すべてのコードを rawADO.NET SQLCommandからに変更しました。ただし、生のコマンドをデータベースに挿入するほど単純ではないEntity Frameworkという点で、多くの欠点があることに気付きました。さらに、 forを生成するために使用しました。Entity FrameworkSQLReverse EngineeringModels & MappingMS Sql Server

現在、次のことをしようとしていますが、どの列も更新されていません。

string sql = @"UPDATE [ProductDB] SET CreatedProduct_Time=getdate(), CreatedProduct_Date=getdate()" + " WHERE [Material_No] = @Material_No";

db.Database.ExecuteSqlCommand(sql, new SqlParameter("@Material_No", materialnotxt));

列が更新されていません。

将来の使用のためにコードを維持するのに役立つかどうか疑問にEntity Framework思っています.古いものの代わりにそれを使用することは頭痛の種raw SQL codeですか? これまでのところ多くの制約があり、より高度な学習曲線が必要です。

私がオンラインで見つけたいくつかの紛らわしい部分は、 http://msdn.microsoft.com/en-us/library/bb738684.aspxcontext.Database.ExecuteSqlCommandとの違いは何ですかコードは私のアプローチとはまったく異なって見えます。MSDN

編集

からすべての情報を挿入しながら、Dateとを挿入するために別のアプローチを使用しました。Timetextbox

using (var db = new ROGContext())
        {

            ProductDB product = new ProductDB
            {
                Material_No = long.Parse(MaterialNo_txtbox.Text),
                Product_Line = ProductLineDropDownList1.SelectedItem.Text,
                Product_Description = Description_txtbox.Text,
                Size = Size_txtbox.Text,
                UOM = UOM_txtbox.Text,
                SupplierID = long.Parse(SupplierCountryListBox.SelectedItem.Value),
                CreatedProduct_Date = DateTime.Parse(System.DateTime.Now.ToShortDateString()), //in the SQL database I have set the datatype as date to get yyyy/mm/dd
                CreatedProduct_Time = DateTime.Now.TimeOfDay  //in the SQL database I have set the datatype as time(0) to get hh:mm:ss
            };

            long queryselect = (from materialno in db.ProductDBs
                               where materialno.Material_No == product.Material_No
                               select materialno.Material_No).SingleOrDefault();

            if (queryselect != long.Parse(materialnotxt))
            {
                Label1.Text = "Product successfully added in database";
                Label1.Visible = true;
                db.ProductDBs.Add(product);
                db.SaveChanges();             
            }             
4

1 に答える 1

0

Context.ExecuteStoreCommand挿入、更新、削除に使用できます。

Entity Framework 4.0 Recipes: A Problem-Solution Approach の64 ページを参照してください。

編集した部分に答えてください:

  1. ExecuteStoreQuery選択用
  2. ExecuteStoreCommand挿入、更新、および削除用

Entity Framework v4 – ヒントとコツ

于 2013-03-08T19:25:59.627 に答える