問題タブ [n-layer]
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# - アクセスがデータ アクセス レイヤーに制限されている場合でも、UI で参照される Entity Framework は必要ですか?
データ アクセス レイヤーでデータベース アクティビティが実行される n 層アプリケーションがあります。データアクセス層のリポジトリからタスクを実行するようデータアクセス層に要求するアプリケーション層があります。今のところ、結果をテストするための単純なコンソール アプリである私のユーザー インターフェイスは、アプリケーション層にデータのリストなどを取得するように要求します。データのリストは、アプリケーション層がリポジトリから取得し、すべてがコンソール アプリに返されます。
コンソール アプリでエンティティ フレームワークを参照として追加しないと、次のエラーが発生します。
不変名 'System.Data.SqlClient' を持つ ADO.NET プロバイダーのアプリケーション構成ファイルに登録されている Entity Framework プロバイダー タイプ 'System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer' を読み込めませんでした。アセンブリ修飾名が使用されていること、およびアセンブリが実行中のアプリケーションで使用可能であることを確認してください。詳細については、http: //go.microsoft.com/fwlink/?LinkId=260882を参照してください。
コンソール アプリがデータ アクセス呼び出しまたはエンティティ フレームワーク操作を行わないのに、なぜこのエラーが発生するのですか? これはすべて、Entity Framework が参照されているデータ アクセス レイヤーで行われます。
更新:以下は私のコンソールインターフェースです:
以下は App.config です。
entityFramework セクションとデータベース文字列を削除すると、次のエラーが発生します。
{"指定されたスキーマは有効ではありません。エラー: \r\nModelEntities.ssdl(2,2): エラー 0152: 不変名 'System.Data.SqlClient' を持つ ADO.NET プロバイダーの Entity Framework プロバイダーが見つかりません。プロバイダーは、アプリケーション構成ファイルの 'entityFramework' セクションに登録されています。詳細については、 http: //go.microsoft.com/fwlink/ ?LinkId=260882 を参照してください。"}
次に、entityframework の登録を行う構成セクションを削除すると、同じエラーが発生します。
ソリューションのコンソール プロジェクトに EntityFramework を追加すると、これらのエラーはすべてなくなります。これにより、これらのエントリも app.config に追加されます。
c# - DMOまたはACMなしで波形ASP.netをレンダリングするC#NAudio
Azure Web サイト (ACM または DMO コーデックがインストールされていない) で ASP.net を使用して波形を描画しようとしているため、NLayer を使用して mp3 ファイルを読み取る必要がありました。以下のコードは、通常の DmoMp3FrameDecompressor では完全に機能しますが、NLayer デコンプレッサを使用すると機能しません。
NLayer デコンプレッサのフォーマットは、16 ビット PCM ではなく 32 ビット Float である可能性があります。
c# - C# n 層エンティティの変更が挿入後に DTO に反映されない
タイトルについて申し訳ありませんが、適切な説明がわかりませんでした。
私は4つの層を持っています:
- Core Layer : DTO、サービスおよびリポジトリ用のインターフェースが含まれています。
- ビジネス層 : ビジネス ロジックを処理する「サービス」が含まれます。
- Data Access Layer : データベース アクセスとエンティティの DTO への変換を処理するリポジトリが含まれます。
- プレゼンテーション層 : UI のもの
最適な解決方法がわからない問題に遭遇しました。次のように、データベースにエンティティを非同期的に追加しています。
AdministrationRateService:
AdministrationRateRepository:
リポジトリ:
問題は、追加された後、新しく生成されたエンティティの ID が DTO (DTO.ID = 0) に反映されていないことです。
更新されたエンティティを返すことはできません。これは、エンティティをプレゼンテーション層で DTO に変換して完全に非同期に保つ必要があるためです。
汎用リポジトリのため、ID だけを返すこともできません。
非常に便利なので、汎用リポジトリを削除したくありませんが、データベースを変更せずに安全に実行する別の方法がわかりません (これはできません)。
それで、私は何をしますか?
.net - プロジェクトは、.NET Core/.NET Standard で直接参照されていない別のプロジェクトのクラスを参照できます
N 層アプリケーションを設計しています。このソリューションには、A、B、C、D、および E の 5 つのプロジェクトがあります。
プロジェクト間の参照は次のようになります。
A -> B、E
B -> C、E
C -> D、E
D -> E
A から D への明示的な参照はありませんが、名前空間をインポートするだけで問題なくアクセスできます。Aのプロジェクト参照を展開すると、Bが参照されていることがわかります。A>B を展開すると、C などが表示されます。
これは設計によるものですか?
c# - ユーザー インターフェイス層からデータ アクセス層への監査目的で、Web n 層アプリケーションでユーザー ID を渡す方法は?
UI、BLL、API (WebAPI)、DAL などの n 層アーキテクチャで構造化された Web アプリケーションを構築しました。この関心の分離で達成したいことは、DAL で基本的な監査 (RowCreatedBy、RowUpdatedBy など) を有効にすることですが、ユーザー ID を UI レイヤーから私のすべてのcrud呼び出しでパラメーターとして追加せずにデータアクセスレイヤー。そこにあるオプションはThread.CurrentPrincipalを使用していますが、うまくいく可能性がありますが、問題は私のアプリケーションが特定のIDセットを持つapppoolの下のIISでホストされていることです。すべてのアプリケーション層で CurrentUser を利用できるようにしたいと考えています。最善のアプローチを教えてください。
注意: 人々がこれを尋ねたかもしれないことは知っていますが、私が見た他の参考文献から、私のシナリオを満たすものはありません.