問題タブ [dbcontext]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
4 に答える
12803 参照

c# - Entity Framework - カスタム DbContext を使用してリポジトリを実装する方法は?

さまざまなアプリケーション間でコードを共有するために、社内で小さなフレームワークの開発を開始しています。データ アクセスには EF4 を使用しています。カスタム DbContext クラスと汎用リポジトリがあります。

ここでの問題は、カスタム DbContext クラス (RMDbContext) を使用してリポジトリを実装する方法です。私の同僚は、RMDbContext に IRepository インターフェイスを実装させるのが最善の方法だと考えています。

正直なところ、コンテキストが特定のコントラクト (IRepository) に関連付けられているため、このアプローチは好きではありません。IMO RMDbContext を使用するリポジトリ実装を作成することをお勧めします。次のようになります。

これら2つのアプローチについてどう思いますか?どちらを選びますか。なぜですか。

0 投票する
1 に答える
11987 参照

c# - DbContext SaveChanges()-更新されたエンティティを検出します

Entity Framework 4.1 DbContextクラスのSaveChanges()メソッドをオーバーライドしました。

私のオーバーライドは次のようになります:

コンテキストに2つのエンティティがあり、両方がModified(EntityState.Modified)としてマークされていると想定します。それらの1つは変更されており、基になるデータベース行とは異なります。もう1つは、基になるデータベース行と実際には違いはなく、そのようにマークされているだけです。

SaveChanges()を呼び出した後、2つのエンティティのどちらがデータベースの行を実際に更新したか、そしてどちらが実際には変更されなかったかを確認するにはどうすればよいですか?

0 投票する
4 に答える
15396 参照

c# - C# EF 4.1 DbContext 内で動的にテーブルを作成する

テーブル名は静的ではなく、コンパイル時に認識されるため、実行時に SQLCe データベースにテーブルを追加したいと考えています。次のように、Entity Framework 4.1 と DbContext でこれを実行しようとしています。

これを実行しようとすると、次のエラーがスローされます: The entity type Person is not part of the model for the current context .

データベースでその DbSet (そのスキーマを含む) を定義することなく、実行時に DbSet を DbContext に追加することは可能ですか?

Person を使用して DbContext を静的に定義すると、EF はデータベース全体とテーブルをその場で作成します。これはすばらしいことです。

例えば:

これは何とかEFで可能ですか、それとも他の手法でこれらを作成する必要がありますか?

ありがとう、ユルゲン

0 投票する
0 に答える
224 参照

ado.net - ADO.NETDbContextGeneratorの実行後の非表示のエンティティクラス

VB.NETアプリケーションでDbContextGeneratorを使用しましたが、生成されるエンティティクラス(.ttファイルではない)は、ソリューションエクスプローラーで[すべてのファイルを表示]オプションを選択した場合にのみ表示されます。

これが起こっている理由は何ですか?ac#プロジェクトを作成して同じことを行うと、.ttファイル内に表示されることに気づきました。

0 投票する
2 に答える
329 参照

asp.net-mvc - EntityFrameworkで2つの関連モデルと同時実行性を更新する

ASP.NET MVCアプリケーションで、次の2つの関連モデルを更新しようとしています。

最初のものは問題なく通過していますが、2番目のものを更新しようとすると、並行性が発生し、以下のエラーがスローされます。

ストアの更新、挿入、または削除ステートメントが予期しない行数(0)に影響しました。エンティティがロードされてから、エンティティが変更または削除された可能性があります。ObjectStateManagerエントリを更新します

私がここでやろうとしていることを達成する方法は何ですか?

アップデート

_accommpropertyseasondetailrepo Edit方法は次のとおりです。

_accommpropertyseasonrepo Edit方法は次のとおりです。

更新2

アクションメソッド全体は次のとおりです。

アップデート

Brutal Truth:ビューの次のコード行を忘れたため、モデルはPKなしで戻ってきました:

問題は解決しました!

0 投票する
2 に答える
1575 参照

asp.net-mvc-3 - MVC3/Razor Add Controller "Get-PrimaryKey" が主キーを見つけられない

既存のデータベースに基づいて Entity Framework モデルを作成しました。Entity Framework は ADO.NET DbContext Generator を使用しています。

最初のプロジェクトの DLL を使用する MVC3/Razor プロジェクトも作成しました。「追加 -> コントローラ」オプションをクリックして必要なフィールドに入力すると、厄介なエラーが発生します。

これを回避するには、Visual Studio によって生成された Groups.cs に移動し、「using System.ComponentModel.DataAnnotations;」を追加する必要があります。[Key] を Groups フィールドの宣言に追加します。ただし、これは生成されたコードです。Entity Framework Project を再コンパイルすると、変更内容はもちろん失われます。

だから - 私の質問は:

Visual Studio がキー フィールドが何であるかを理解できない原因となっている何か間違ったことをしているのですか、それともキーが何であるかを理解するのを妨げているスキャフォールディング コードの単なるバグですか。

これは、文字列ベースの主キーでのみ失敗することに注意してください。フィールドが整数として宣言されていた場合、すべてが完全に機能します。

問題のあるテーブルは次のとおりです。

私の環境は次のとおりです。

  • ビジュアル スタジオ 2010
  • エンティティ フレームワーク 4.1
  • MVC3
  • SP3 を適用した SQL Server 2008
  • 0 投票する
    6 に答える
    19771 参照

    c# - DbSet.FirstOrDefault()?

    これを実行しようとしていますが、FirstOrDefaultを使用できないと表示されます。

    エラーはSystem.Data.Entity.DbSet」に「FirstOrDefault」の定義が含まれておらず、タイプ「System.Data.Entity.DbSet」の最初の引数を受け入れる拡張メソッド「FirstOrDefault」が見つかりませんでした(欠落していますか?使用ディレクティブまたはアセンブリ参照?)

    次に、このCastメソッドを試しましたが、エラーが発生しました。タイプ'WindowStyle'のオブジェクトの非ジェネリックDbSetからDbSetを作成できません(btwは以下WindowStyleから継承しDomainEntityます)。

    これがクラスです、

    0 投票する
    1 に答える
    492 参照

    asp.net-mvc-3 - DbContextはどこに置くべきですか?

    3つのレイヤー(ビジネスロジック、永続性、ドメイン)を統合するMVC 3プロジェクトで作業している場合、どのレイヤープロジェクトにDbContext実装を配置する必要があるのか​​疑問に思いました。

    MVC 3プロジェクトに直接含める必要がありますか?または永続的に?

    ありがとう。

    0 投票する
    1 に答える
    221 参照

    entity-framework-4.1 - MvcScaffoldingは、廃棄されない使い捨てリソースを作成します

    EF4.1でMvcScaffoldingを使用すると、コントローラーの最初に生成された行は、通常、次のフィールド定義であることがわかります。

    ここで、BarContextは次のとおりです。

    System.Data.Entity.DbContextを実装していることを考えると、破棄を処理する可能性のあるメソッドIDisposableに対して生成されたオーバーライドが見つからないことに驚いています。FooControllerDispose(bool)context

    これはテンプレートの見落としですか、それともこれを問題にしない何かが欠けていますか?

    0 投票する
    2 に答える
    1039 参照

    c# - DbContext Set()からソフト削除を除外します

    IsSoftDeletedこのDbSetからアイテムをフィルタリングするにはどうすればよいですか?

    方法

    モデル

    編集:表示するのを忘れたからWhatever派生BaseEntity