私はこのようなリポジトリプロジェクトを持っています。Entity Frameworkの更新DbContext
https://github.com/tugberkugurlu/GenericRepository/tree/master/src
私は方法があります。
public void Edit(TEntity entity)
{
_dbContext.SetAsModified(entity);
}
public void SetAsAdded<TEntity>(TEntity entity) where TEntity : class
{
DbEntityEntry dbEntityEntry = GetDbEntityEntrySafely(entity);
dbEntityEntry.State = EntityState.Added;
}
しかし、私は更新記録中に取得しています。私はこのエラーを時々起こしています。同じタイプの 別のエンティティがすでに同じ主キー 値を有するのでタイプのエンティティを取り付け
「はTP.Model」に失敗しました。これは、 'Attach'メソッドを使用するか、または グラフ内のエンティティのいずれかが競合するキー値を持つ場合、エンティティの 状態を 'Unchanged'または 'Modified'に設定すると発生します。これは、一部のエンティティ が新しく、データベース生成キー値をまだ受け取っていないことが原因です。 このケースでは、 'Add'メソッドまたは 'Added'エンティティ状態を使用して、グラフを と追跡し、非新規エンティティの状態を 'Unchanged'または 'Modified'に設定します。
あなたがこれを確認しましたか? https://stackoverflow.com/questions/23201907/asp-net-mvc-attaching-anentity-of-type-modelname-failed-because-otherotherent –
私は何度も何度も読んでいますが、わかりません問題があります。 – caras
コンテキストdbset 'Local'コレクションをデバッグしてください。既にIDを持つエンティティが含まれていると、コードが失敗する可能性があります。しかし、コードを十分に示していないので、問題の内容を確認することはできません。 – grek40