私はコードの部分を持っています... ...。さて、同じコードが痛いほど遅いです。場合によっては10-15秒まで完了することもあります。バックグラウンドで起こっていた出力に... ...TryUpdateModelAsyncオープンをして閉じ、接続1000年の倍
DB.ITConsole.Database.Log = s => System.Diagnostics.Debug.WriteLine(s);
を使用して
は、私はこの方法は、文字通り、数千回のデータベースを開いたり閉じたりしていることが分かりました。 "IT_Task"レコードがあるのと同じくらい何回もあると私には思われました。おそらくもっと。以下の出力の小さなサンプル...
何が起こっているのですか?ビューコレクションから更新されたモデルのレコードを取得するにはどうすればよいですか?
Opened connection at 15/06/2017 16:59:40 +01:00
SELECT
[Extent1].[Project_Note_ID] AS [Project_Note_ID],
[Extent1].[Project_ID] AS [Project_ID],
[Extent1].[Date_Entered] AS [Date_Entered],
[Extent1].[Entered_By_ID] AS [Entered_By_ID],
[Extent1].[Description] AS [Description]
FROM [dbo].[IT_Project_Note] AS [Extent1]
WHERE [Extent1].[Project_ID] = @EntityKeyValue1
-- EntityKeyValue1: "164" (Type = Int32, IsNullable = false)
-- Executing at 15/06/2017 16:59:40 +01:00
-- Completed in 0 ms with result: SqlDataReader
Closed connection at 15/06/2017 16:59:40 +01:00
Opened connection at 15/06/2017 16:59:40 +01:00
SELECT
[Extent1].[Task_ID] AS [Task_ID],
[Extent1].[Entered_By_ID] AS [Entered_By_ID],
[Extent1].[Reported_By_ID] AS [Reported_By_ID],
[Extent1].[NAB_ID] AS [NAB_ID],
[Extent1].[Project_ID] AS [Project_ID],
[Extent1].[Description] AS [Description],
[Extent1].[Task_Category_ID] AS [Task_Category_ID],
[Extent1].[Task_Type_ID] AS [Task_Type_ID],
[Extent1].[Task_Status_ID] AS [Task_Status_ID],
[Extent1].[Task_Priority_ID] AS [Task_Priority_ID],
[Extent1].[Task_Severity_ID] AS [Task_Severity_ID],
[Extent1].[Date_Entered] AS [Date_Entered],
[Extent1].[Date_Due] AS [Date_Due]
FROM [dbo].[IT_Task] AS [Extent1]
WHERE [Extent1].[Project_ID] = @EntityKeyValue1
-- EntityKeyValue1: "164" (Type = Int32, IsNullable = false)
-- Executing at 15/06/2017 16:59:40 +01:00
-- Completed in 0 ms with result: SqlDataReader
Closed connection at 15/06/2017 16:59:40 +01:00
Opened connection at 15/06/2017 16:59:40 +01:00
SELECT
[Extent1].[Project_Note_ID] AS [Project_Note_ID],
[Extent1].[Project_ID] AS [Project_ID],
[Extent1].[Date_Entered] AS [Date_Entered],
[Extent1].[Entered_By_ID] AS [Entered_By_ID],
[Extent1].[Description] AS [Description]
FROM [dbo].[IT_Project_Note] AS [Extent1]
WHERE [Extent1].[Project_ID] = @EntityKeyValue1
-- EntityKeyValue1: "203" (Type = Int32, IsNullable = false)
-- Executing at 15/06/2017 16:59:40 +01:00
-- Completed in 0 ms with result: SqlDataReader
Closed connection at 15/06/2017 16:59:40 +01:00
Opened connection at 15/06/2017 16:59:40 +01:00
SELECT
[Extent1].[Task_ID] AS [Task_ID],
[Extent1].[Entered_By_ID] AS [Entered_By_ID],
[Extent1].[Reported_By_ID] AS [Reported_By_ID],
[Extent1].[NAB_ID] AS [NAB_ID],
[Extent1].[Project_ID] AS [Project_ID],
[Extent1].[Description] AS [Description],
[Extent1].[Task_Category_ID] AS [Task_Category_ID],
[Extent1].[Task_Type_ID] AS [Task_Type_ID],
[Extent1].[Task_Status_ID] AS [Task_Status_ID],
[Extent1].[Task_Priority_ID] AS [Task_Priority_ID],
[Extent1].[Task_Severity_ID] AS [Task_Severity_ID],
[Extent1].[Date_Entered] AS [Date_Entered],
[Extent1].[Date_Due] AS [Date_Due]
FROM [dbo].[IT_Task] AS [Extent1]
WHERE [Extent1].[Project_ID] = @EntityKeyValue1
-- EntityKeyValue1: "203" (Type = Int32, IsNullable = false)
-- Executing at 15/06/2017 16:59:40 +01:00
-- Completed in 0 ms with result: SqlDataReader
Closed connection at 15/06/2017 16:59:40 +01:00
Opened connection at 15/06/2017 16:59:40 +01:00
SELECT
[Extent1].[Task_Note_ID] AS [Task_Note_ID],
[Extent1].[Task_ID] AS [Task_ID],
[Extent1].[Description] AS [Description],
[Extent1].[Entered_By_ID] AS [Entered_By_ID],
[Extent1].[Date_Entered] AS [Date_Entered],
[Extent1].[CC_User] AS [CC_User]
FROM [dbo].[IT_Task_Note] AS [Extent1]
WHERE [Extent1].[Task_ID] = @EntityKeyValue1
-- EntityKeyValue1: "15669" (Type = Int32, IsNullable = false)
-- Executing at 15/06/2017 16:59:40 +01:00
-- Completed in 0 ms with result: SqlDataReader
Closed connection at 15/06/2017 16:59:40 +01:00
Opened connection at 15/06/2017 16:59:40 +01:00
SELECT
[Extent1].[Project_Note_ID] AS [Project_Note_ID],
[Extent1].[Project_ID] AS [Project_ID],
[Extent1].[Date_Entered] AS [Date_Entered],
[Extent1].[Entered_By_ID] AS [Entered_By_ID],
[Extent1].[Description] AS [Description]
FROM [dbo].[IT_Project_Note] AS [Extent1]
WHERE [Extent1].[Project_ID] = @EntityKeyValue1
-- EntityKeyValue1: "235" (Type = Int32, IsNullable = false)
-- Executing at 15/06/2017 16:59:40 +01:00
-- Completed in 0 ms with result: SqlDataReader
Closed connection at 15/06/2017 16:59:40 +01:00
Opened connection at 15/06/2017 16:59:40 +01:00
SELECT
[Extent1].[Task_ID] AS [Task_ID],
[Extent1].[Entered_By_ID] AS [Entered_By_ID],
[Extent1].[Reported_By_ID] AS [Reported_By_ID],
[Extent1].[NAB_ID] AS [NAB_ID],
[Extent1].[Project_ID] AS [Project_ID],
[Extent1].[Description] AS [Description],
[Extent1].[Task_Category_ID] AS [Task_Category_ID],
[Extent1].[Task_Type_ID] AS [Task_Type_ID],
[Extent1].[Task_Status_ID] AS [Task_Status_ID],
[Extent1].[Task_Priority_ID] AS [Task_Priority_ID],
[Extent1].[Task_Severity_ID] AS [Task_Severity_ID],
[Extent1].[Date_Entered] AS [Date_Entered],
[Extent1].[Date_Due] AS [Date_Due]
FROM [dbo].[IT_Task] AS [Extent1]
WHERE [Extent1].[Project_ID] = @EntityKeyValue1
-- EntityKeyValue1: "235" (Type = Int32, IsNullable = false)
-- Executing at 15/06/2017 16:59:40 +01:00
-- Completed in 0 ms with result: SqlDataReader
Closed connection at 15/06/2017 16:59:40 +01:00
Opened connection at 15/06/2017 16:59:40 +01:00
SELECT
[Extent1].[Project_Note_ID] AS [Project_Note_ID],
[Extent1].[Project_ID] AS [Project_ID],
[Extent1].[Date_Entered] AS [Date_Entered],
[Extent1].[Entered_By_ID] AS [Entered_By_ID],
[Extent1].[Description] AS [Description]
FROM [dbo].[IT_Project_Note] AS [Extent1]
WHERE [Extent1].[Project_ID] = @EntityKeyValue1
-- EntityKeyValue1: "243" (Type = Int32, IsNullable = false)
-- Executing at 15/06/2017 16:59:40 +01:00
-- Completed in 0 ms with result: SqlDataReader
Closed connection at 15/06/2017 16:59:40 +01:00
Opened connection at 15/06/2017 16:59:40 +01:00
SELECT
[Extent1].[Task_ID] AS [Task_ID],
[Extent1].[Entered_By_ID] AS [Entered_By_ID],
[Extent1].[Reported_By_ID] AS [Reported_By_ID],
[Extent1].[NAB_ID] AS [NAB_ID],
[Extent1].[Project_ID] AS [Project_ID],
[Extent1].[Description] AS [Description],
[Extent1].[Task_Category_ID] AS [Task_Category_ID],
[Extent1].[Task_Type_ID] AS [Task_Type_ID],
[Extent1].[Task_Status_ID] AS [Task_Status_ID],
[Extent1].[Task_Priority_ID] AS [Task_Priority_ID],
[Extent1].[Task_Severity_ID] AS [Task_Severity_ID],
[Extent1].[Date_Entered] AS [Date_Entered],
[Extent1].[Date_Due] AS [Date_Due]
FROM [dbo].[IT_Task] AS [Extent1]
WHERE [Extent1].[Project_ID] = @EntityKeyValue1
-- EntityKeyValue1: "243" (Type = Int32, IsNullable = false)
-- Executing at 15/06/2017 16:59:40 +01:00
-- Completed in 0 ms with result: SqlDataReader
Closed connection at 15/06/2017 16:59:40 +01:00
Opened connection at 15/06/2017 16:59:40 +01:00
SELECT
[Extent1].[Project_Note_ID] AS [Project_Note_ID],
[Extent1].[Project_ID] AS [Project_ID],
[Extent1].[Date_Entered] AS [Date_Entered],
[Extent1].[Entered_By_ID] AS [Entered_By_ID],
[Extent1].[Description] AS [Description]
FROM [dbo].[IT_Project_Note] AS [Extent1]
WHERE [Extent1].[Project_ID] = @EntityKeyValue1
-- EntityKeyValue1: "257" (Type = Int32, IsNullable = false)
-- Executing at 15/06/2017 16:59:40 +01:00
-- Completed in 0 ms with result: SqlDataReader
Closed connection at 15/06/2017 16:59:40 +01:00
Opened connection at 15/06/2017 16:59:40 +01:00
SELECT
[Extent1].[Task_ID] AS [Task_ID],
[Extent1].[Entered_By_ID] AS [Entered_By_ID],
[Extent1].[Reported_By_ID] AS [Reported_By_ID],
[Extent1].[NAB_ID] AS [NAB_ID],
[Extent1].[Project_ID] AS [Project_ID],
[Extent1].[Description] AS [Description],
[Extent1].[Task_Category_ID] AS [Task_Category_ID],
[Extent1].[Task_Type_ID] AS [Task_Type_ID],
[Extent1].[Task_Status_ID] AS [Task_Status_ID],
[Extent1].[Task_Priority_ID] AS [Task_Priority_ID],
[Extent1].[Task_Severity_ID] AS [Task_Severity_ID],
[Extent1].[Date_Entered] AS [Date_Entered],
[Extent1].[Date_Due] AS [Date_Due]
FROM [dbo].[IT_Task] AS [Extent1]
WHERE [Extent1].[Project_ID] = @EntityKeyValue1
-- EntityKeyValue1: "257" (Type = Int32, IsNullable = false)
-- Executing at 15/06/2017 16:59:40 +01:00
-- Completed in 0 ms with result: SqlDataReader
Closed connection at 15/06/2017 16:59:40 +01:00
Opened connection at 15/06/2017 16:59:40 +01:00
SELECT
[Extent1].[Project_Note_ID] AS [Project_Note_ID],
[Extent1].[Project_ID] AS [Project_ID],
[Extent1].[Date_Entered] AS [Date_Entered],
[Extent1].[Entered_By_ID] AS [Entered_By_ID],
[Extent1].[Description] AS [Description]
FROM [dbo].[IT_Project_Note] AS [Extent1]
WHERE [Extent1].[Project_ID] = @EntityKeyValue1
-- EntityKeyValue1: "285" (Type = Int32, IsNullable = false)
-- Executing at 15/06/2017 16:59:40 +01:00
-- Completed in 0 ms with result: SqlDataReader
Closed connection at 15/06/2017 16:59:40 +01:00
Opened connection at 15/06/2017 16:59:40 +01:00
SELECT
[Extent1].[Task_ID] AS [Task_ID],
[Extent1].[Entered_By_ID] AS [Entered_By_ID],
[Extent1].[Reported_By_ID] AS [Reported_By_ID],
[Extent1].[NAB_ID] AS [NAB_ID],
[Extent1].[Project_ID] AS [Project_ID],
[Extent1].[Description] AS [Description],
[Extent1].[Task_Category_ID] AS [Task_Category_ID],
[Extent1].[Task_Type_ID] AS [Task_Type_ID],
[Extent1].[Task_Status_ID] AS [Task_Status_ID],
[Extent1].[Task_Priority_ID] AS [Task_Priority_ID],
[Extent1].[Task_Severity_ID] AS [Task_Severity_ID],
[Extent1].[Date_Entered] AS [Date_Entered],
[Extent1].[Date_Due] AS [Date_Due]
FROM [dbo].[IT_Task] AS [Extent1]
WHERE [Extent1].[Project_ID] = @EntityKeyValue1
-- EntityKeyValue1: "285" (Type = Int32, IsNullable = false)
-- Executing at 15/06/2017 16:59:40 +01:00
-- Completed in 0 ms with result: SqlDataReader
Closed connection at 15/06/2017 16:59:40 +01:00
アップデート - TryUpdateModelAsyncを使って何をしようとしていますか?
私の知る限り、TryUpdateModelAsyncは1つのことだけを行います。私が間違っていたら謝ります。
データベースの特定のレコードに基づいてモデルを作成し、そのページのドロップダウンなどのサポート資料を作成し、GETフェーズで編集用にページに送りました。その後POST段階で、同じレコードに基づいて別の(同じ)モデルを作成します。
TryUpdateModelAsyncは、返信POSTからデータを取得し、元のレコードをそのデータで更新してから保存できるようにするためのものです。
私は実際に、これらの2つのデータセットをマージするためにデータベースを全く見ないというプロセスを期待していませんでした。私は、SaveChangesでデータベースへのアクセスが期待されるだけです。
お読みください[タグを使用する方法](https://でのstackoverflow .com/help/tagging)。質問を投稿する前に、なぜタグをタイトルに入れるべきではなく、質問をするときに正しいタグを使用してください。あなたが実際に[tag:entityframework-core]について質問したときに[tag.entity-framework]という質問にタグを付けることで、回答が少なくても正しくない場合もあります。 – Tseng
占いのスキルが不足している場合は、あなたの 'TryUpdateModelAsync'メソッドが何をしているのか、あなたが使っているデータベースプロバイダがわからないときはどうすればいいですか? – Tseng
これは実際にEF6の問題であり、EFCore – Smit