問題タブ [poco]
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# の高度な XML シリアライザー
ドメインオブジェクトを大量の属性で汚染することなく、ほとんどのオブジェクトをシリアル化できる C# 用の XML シリアライザー用のクローズドまたはオープンソースのプロジェクトはありますか? 内部ジェネリック クラスで構築されたコレクションのシリアル化も処理しますか? おまけとして、インターフェイス タイプのプロパティのシリアル化を処理できます。別のボーナスは、読み取り専用のプロパティを持つオブジェクトをシリアル化できることです (または、少なくとも内部とマークされた get アクセサーを使用して)
c# - POCO は何に使用できますか?
enttity フレームワークで POCO に関する記事をいくつか読みましたが、何に使用できるかまだわかりません。POCO は私のプロジェクトにどのようなメリットをもたらしますか?
c# - How do I compare the fields/properties between POCOs?
Possible Duplicate:
Comparing object properties in c#
Let's say I have a POCO:
I want to compare two instances of Person to see if they're equal to each other. Naturally, I would compare Name
, DateOfBirth
, and the Relatives
collection to see if they're equal. However, this would involve me overriding Equals()
for each POCO and manually writing the comparison for each field.
My question is, how can I write a generic version of this so I don't have to do it for each POCO?
c# - ORM/永続層 アドバイス
私は新しいプロジェクトを開始しており、非常に優れた ORM または非 SQL ベースの永続化レイヤーを探しています。
このプロジェクトでは、妥当な速度で、そして最も重要なこととして単純なクエリでデータをクエリおよび保存できる限り、データがどのように永続化されるかは気にしません。
同時実行性はシームレスに処理する必要があり (フロントエンドは別の層にあり、複数の同時ユーザーが存在しますが、必ずしも同じデータで作業しているわけではありません)、データ層に集中する必要が少なくなります (簡単なクエリ、自動遅延)。ローディングなど)より良い。
また、LINQ をサポートするツールや、直感的で厳密に型指定されたクエリをサポートするツールが大きなボーナスを得られるように、文字列ベースのクエリをいじる必要は絶対に避けたいと考えています。
最後に、POCO オブジェクトを操作することは、私が本当にやりたいことの 1 つです
。これは、私が評価した製品のリストと、それらが適合しない理由です。これらの使用に関するアドバイスは表示されません。
- NHibernate: クレイジーな xml のもの、セットアップが多すぎる、メンテナンスの複雑さとモデル変更のコストが高い、セッション ファクトリが面倒で、私のニーズにうまく適合しない
- Castle ActiveRecord: NHibernate ベースで、ドキュメントがほとんどなく、NHibernate に関連する問題がいくつか残っています。さらに、適切なモデルを取得するには非常に多くの属性が必要になるため、スキーマを手動で作成する方が適切であり、リレーションの処理方法が残念です。
- Linq To SQL: POCO オブジェクトが欠落しており、MS によると、残業時間はあまり改善されません (EF は彼らがコミットしているものです)
- Entity Framweork: v4 では POCO オブジェクトを使用できますが、それでもかなりハックであり、設定に手作業が多すぎます。その上、v4 は単なるベータ版です
- LLBLGen Pro: 特に SelfServicing アダプターの場合は良好ですが、POCO はそうではありません。また、LINQ プロバイダーはまだ完全ではありません。最後に、LINQ を介してオブジェクトのグループを削除することはできません。その結果、API が混在することになり (そのうちの 1 つは直感的とはほど遠いものです)、私はそれが好きではありません。
- XPO: POCO ではなく、直感的で非常に遅い同時実行の問題
- SubSonic SimpleRepository: 数分間、私は夢を見ていると思いました。物事がどのように関係を処理しなかったかを理解したので、ディームは終わりました
私は MongoDB と CouchDB も調べましたが、これらの場合、関連オブジェクトのキャッチは、物事を正しく行う前にあまりにも多くのテストを必要とするように見えました。さらに、厳密に型指定されたクエリを提供するものはありません。
ご提案いただきありがとうございます。
c# - POCO を DTO から派生させるべきか、そうでない方がよいでしょうか?
n 層ソリューションを作成するとき、ビジネス オブジェクトを公開したくありませんが、代わりに DTO を使用します。一方で、オブジェクトを二重に定義したり、常にコピー コードを記述したりしたくはありません。
ここでの私の考えは、必要なすべてのフィールドとプロパティを含み、ロジックを含まない (状態のみ) DTO を作成することです。
次に、これらの DTO からビジネス オブジェクトを派生させ、ビジネス ロジックを使用してそれらを拡張し、DTO 基本クラスのプロパティを操作します。これらのオブジェクトは、使用される ORM (NHibernate) で永続化されるオブジェクトでもあります。
このアプローチを使用すると、サーバー側でビジネス オブジェクトを処理し、クライアントに直接渡すことができます (これらは派生しているため、ダウンキャスト可能です)。ビジネス ロジックをそのように公開して、多くのコードを節約する必要はありません。
そのアプローチは賢明だと思いますか。
よろしく、
セバスチャン
c++ - link.exeを使用して静的にリンクする方法
Visual Studio 2008コマンドラインツールを使用して、Windows上のPocoと呼ばれるC++ライブラリに対して静的にリンクしようとしています。
私は自分のプログラムを以下で構築します:
これにより、実行時にPocoNet.dllとPocoFoundation.dllを必要とするexeが生成されます。
私はWindowsでのリンクについて読んで時間を費やし、動的にリンクcl /MT
しながら、標準ライブラリに対して静的にリンクすることを学びました。cl /MD
指定しようとしまし/MT
たが、何も変わらないようです。私のアプリにはまだPocoDLLが必要です。(これ/MT
がデフォルトの動作だと思います。)
下を見ると..\poco\lib
、PocoNetmt.libもあることがわかりましたが、PocoNet.libの代わりにそれを指定すると、多数のLNK2005エラー(「定義済み」)が発生しました。
次に、さらにフラグを重ねてみました。
/verbose:lib
:何が起こっているかを確認するのに役立ちます/Zl
:以前と同じ結果
/li>/nodefaultlib:libcmt.lib /nodefaultlib:msvcprt.lib
:このエラーが発生しました:ここで提案されているよう
.lib
に、完全にドロップします:上記と同じエラー
私はまた、上記のいくつかの組み合わせを試しましたが、まったく役に立ちませんでした。
手がかりがあれば大歓迎です。しかし、これらのタイプの問題をデバッグ(または学習)するのに役立つリソースへのポインターも同様に役立ちます。
c# - EntityFramework4とCode-Firstを使用してデータベースからフィールド/プロパティを除外する
データベースからいくつかのフィールドを除外する方法があることを知りたいですか?例:
AddressAsフィールドをデータベースから除外するにはどうすればよいですか?
nhibernate - オブジェクトをReflectionからジェネリックコレクションに変換するにはどうすればよいですか?
Reflectionを使用して一部のPOCOのプロパティを比較し、データベースに正しく永続化されていることを確認するCompareメソッドを作成しようとしています。たとえば、私がこのPOCOを持っているとしましょう:
私がしたいのはこれです:
私が使用しているORMはNHibernateです。私のCompareメソッドは、これまでのところ次のようになっています。
Object.Implements()
型がインターフェースを実装するかどうかを決定するために私が書いた拡張メソッドです。ご覧のとおり、メソッドは不完全です。私が遭遇している問題は、を使用するproperty.GetValue(x, null)
と、が返され、特定の汎用タイプobject
にキャストする方法がわからないことです。LINQを使用して2つのコレクションが等しいICollection
かどうかを比較できるように、これを実行できる必要があります。x.Contains(y)
これを行う方法について何かアイデアはありますか?
PS Compare .NET Objectsを使用しようとしましたが、NHibernateの奥深くでnull参照例外が発生します。ICollection
NHibernateが遅延読み込みのためにプロキシする方法を適切に処理しません。さらに悪いことに、NHibernateは遅延読み込みをサポートするようにPOCOを変更しますが、これはすべて実行時に行われます。ソースコードでは、通常のを使用しているように見えますがICollection
、NHibernateはこれをNHibernate.Collections.Generic.PersistentSet
実行時に変更します。これが、比較機能の失敗の原因です。
c++ - Snow Leopard でのリンク エラー
Mac OS X Snow Leopard で Qt と Poco を使用して小さなデスクトップ アプリケーションを作成しています。
Qt は正常に動作しますが、Poco とのリンクを開始すると、次の警告が表示されます。
また、10.5 SDK に対してリンクすると、次のようになります。
これを解決する方法に関するヒントはありますか?
解決しました!
これが私の回避策です(私はPocoフォーラムにも投稿しました):
問題は、アーキテクチャが指定されていない場合、Snow Leopard のデフォルトが 64 ビットであるのに対し、古いバージョンの OS のデフォルトは 32 ビットであることです。Poco ビルド システムでは、Darwin 構成ファイルでアーキテクチャが指定されていないため、32 ビットが選択されます。私の解決策は、Darwin_x86_64 構成ファイルを Darwin ファイルにコピーし、「x86_64」のテキスト インスタンスを「i386」に置き換えることでした。これにより、32 ビット ビルドが強制されます。
ややハックな解決策ですが、よりクリーンな方法で実行できるかどうか教えてください...
subsonic - サブソニック マップ POCO を別の名前のテーブルにマップする
私は小さなプロジェクトを開始し、データベース レイヤーに Subsonic の SimpleRepository を使用したいと考えていました。データベースに Member というテーブルがあり、TeamMember という POCO を作成したいとします。クラス TeamMember を属性またはその他のメソッドを介してテーブル Member にマップできますか? 私が求めているのは、SimpleRepository オブジェクトの使用方法ではない可能性があります。その場合は、提案をいただければ幸いです。
ありがとう - エリック