問題タブ [dbset]
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.
c# - c# から vb.net へのリポジトリ パターン クラスの変換
私は次のC#コードを持っていました:
次のようにコードをレンダリングする変換ツールを使用して、これを vb.net に変換しようとしました。
これにより、「アクセス可能な「シングル」がこの数の引数を受け入れないため、過負荷の解決に失敗しました」というエラーがスローされます
これを修正する方法のアイデアはありますか?
controller - MVC 5 - コントローラー内の複数の DbContext
私は MVC 5 インターネット アプリケーションを開発していDbContext
ますcontroller
。
私DbContext
のクラスにはDbSet
、さまざまなモデル エンティティのオブジェクトが多数あります。どのモデル エンティティも仮想オブジェクトを使用していませんが、ビュー モデルは各コントローラーで仮想オブジェクトを使用しています。
DbSet
コントローラーが同じコントローラー/アクションの結果で異なるオブジェクトを参照する場合、DbContext
異なる参照ごとに異なるインスタンスを使用する必要がありDbSet
ますか? 1 つのインスタンスDbSets
のみを使用してビュー モデルを作成するために別のクラスにアクセスしようとすると、Web サービス クラスで次のエラーが発生しました。DbContext
Message = "このコマンドに関連付けられた DataReader が既に開いているため、最初に閉じる必要があります。"
これは、同じクラス DbSets
を使用して異なるオブジェクトにアクセスするときに、MVC コントローラーのオブジェクトで CRUD 操作を行うときに発生する可能性がありますか?DbContext
次に例を示します。
MapLocationList
オブジェクトを作成/編集するMapLocationList
ときに、次のさまざまなオブジェクトにアクセスするコントローラーDbSet
があります: Asset
、MapLocation
.
MVC コントローラーで複数のDbContext
インスタンスを使用すると、オーバーヘッドはどのくらい増加しますか?
基本的に、私の質問は、コントローラー/アクションの結果でDbContext
異なるものにアクセスするときに、異なるインスタンスを使用する必要がありますか?DbSets
前もって感謝します。
entity-framework - DbSet の生成された ID は常に位置を表しますか?
新しく作成された DbSet に要素を追加するとき、ID は常に 1 から (要素の数) まで生成されますか? それとも、これが確実に行われるようにコードを追加する必要がありますか?
本当の問題は、私がしたいということです
ので、私は持っています
と
ここで何が起こるかというと、ユーザーが学生に投票するたびに、私は top100allTime で StudentPointer を取得します..その「Vote」変数を更新します...次に、「top100allTime」の学生が常に投票の順序であると仮定すると、次の方法で隣人を取得しますその ID は 1 桁上にあり、投票を比較し、必要に応じてトップ リストの場所を切り替えます。
これは、dbSet の ID が常に 1 から (要素数) までの順序で生成される場合にのみ機能します。
それが私が尋ねる理由です
または、top100List を作成するより効率的な方法はありますか?
data-access-layer - DAL でのモデルの参照
あけましておめでとう皆さん。わかりました、私は 3 層アプリケーションを作成しようとしています。UI -> BLL -> DAL の順序で参照しています。質問は。私が抱えている問題は、Dbset にあります。DAL 内のモデルへの参照がないため、dbset は失敗します。
BLL で SomeModel クラスが見つからない場合、これを機能させるにはどうすればよいですか? どんな助けでも大歓迎です。
c# - DBSet はインターフェイスを使用して動的に登録します
DBset を動的に登録するコード ブロックを作成したいと考えています。インターフェイスを実装するクラスをキャッチするために、空のインターフェイスを使用することにしました。
これが私のコードブロックです。
しかし、シード メソッドでは dbset を処理できません。私を助けてください。
このコードブロックも試しました。
c# - Dbset.Add(entity) は ID を割り当て、これにより例外が発生します
次のクラスの場合:
通常、私たちが行うとき:
ポイント B では、ID は 0 のままにする必要があり、ID はポイント C でのみ割り当てる必要があります。
IDENTITY_INSERT が OFF に設定されている場合、テーブル 'Cars' の ID 列に明示的な値を挿入できません。
私は Fluent API を試してみましたが、関係が正しく定義されていることを 99% 確信しています。この DbSet がこのエンティティに ID を割り当てようとする理由がわかりません。
アップデート
ご協力いただきありがとうございます。ここに私の状況のより詳細な図を示します。
そして、ここに私の流暢な構成があります:
編集 2
まあ、実際に移行が台無しになっていることがわかりました。何らかの理由で、EF は 2 番目の外部キー (Driver2) を主キー列に配置しました。これが、DbSet.Add() が実際には Driver 2 ID である値を ID 列に入力していた理由です。
なぜEFがそのように混乱したのか、私には本当にわかりません。奇妙なことに、SQL Management Studio を調べたときに、この FK が表示されませんでした。EF は、実際には DB にないいくつかの関係を適用したようです。
移行全体をリセットし (移行フォルダーと _migrationhistory テーブルを削除してから、PowerShell で Enable-Migrations と Add-Migration Init を実行しました)、最初の移行ファイルで問題のある行を確認できました。
またはもちろん私はそれらを修正しましたが、問題は解決したようです。
entity-framework - Entity Framework 6 で ObjectSet を DbSet に変換することは可能ですか?
.Net4/EF 4.4 から .Net4.5/EF 6.1 への WPF アプリケーションのアップグレードに取り組んでいます。アップグレード後、DbContext を使用します (ObjectContext 用の POCO ジェネレーターがなかったため)。
アプリケーションは Repository/UnitOfWork-pattern を使用して Entity Framework にアクセスします。アップグレード前に ObjectSet.MergeOption を OverwriteChanges (リポジトリ クラス内) に設定できましたが、DbSet クラスにはこの機能がありません。ただし、IObjectContextAdapter を使用して DbContext から ObjectSet にアクセスできることはわかっています。(以下のコードを参照)。しかし、作成された ObjectSet で MergeOption を設定しても、DbSet には反映されないようです。
私の質問はこれです: ObjectSet を DbSet に戻す方法はありますか (MergeOption 設定を保存します)?
これはリポジトリ クラスの一部です。
c# - DbSet に IQueryable を使用する
MVC 5 インターネット アプリケーションをコーディングしていますが、IQueryable の使用に関して質問があります。
DbSet オブジェクトのセットを IQueryable として取得し、各 DbSet オブジェクトの一部のプロパティを参照しない場合、IQueryable を使用するとこれらのプロパティの値が取得されますか? これは、IEnumerable ではなく IQueryable を使用する利点ですか?
各 DbSet オブジェクトの各プロパティを参照していない多くの DbSet オブジェクトから値を取得する最も効率的な方法を決定しようとしています。
前もって感謝します。
編集
この状況ではどうですか:
次のようなモデルがある場合:
そして、上記のオブジェクトの DbSet を次のように取得します。
そして、上記の IQueryable を反復処理してname
プロパティを取得します。データベースから取得された値はありますかId
?value
EDIT2
この状況ではどうですか:
いくつかの TestModel を IQueryable として取得し、それらを反復処理してから、IQueryable が同じ名前を持つまったく同じコードを呼び出すと、データベースに対して 2 つのトランザクションが行われますか?