問題タブ [petapoco]

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 投票する
1 に答える
5043 参照

petapoco - 型付きパラメーターを使用した PetaPoco クエリ

PetaPoco を使用して、型付きパラメーターを使用してストアド プロシージャを呼び出すにはどうすればよいですか? C#では、次のようにします:

0 投票する
3 に答える
2365 参照

sql-server - 空の GUID で新しいオブジェクトを保存すると、PetaPoco は挿入に失敗します

petapoco を使用して新しいオブジェクトをデータベースに保存しようとしています。主キーに Guid を使用するオブジェクトがあります。

オブジェクトの主キー プロパティの例を次に示します。

以下は保存方法の例です。

生成される SQL は、挿入の代わりに 00000000-0000-0000-0000-000000000000 の primkey を使用した更新です。したがって、新しいレコードが挿入されることはありません。

有効な GUID を持つ既存のオブジェクトがある場合、更新と削除はすべて正しく機能します。

セーブケースで何が間違っていますか?

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

.net - これは、私のpocoから実際の列名を取得するための最良の方法は何ですか?

私はPETAPOCOを使用して、グリッドビューにバインドされるジェネリックオブジェクトのリストを作成しています。ただし、列名は有効なプロパティ名ではないため、T4コードによって変更されます。グリッドビューの列をループして、実際の列名を表示するようにヘッダーテキストを変更したいと思います。プロパティ名の文字列表現がある場合に、POCOプロパティの列属性を取得するための最良の方法は何ですか?

たとえば、私は次のようにしています。

次のようなルーチンが必要です。

つまり、GetRealColumn( "SomeTable"、 "_5F")は"5F"を返します

助言がありますか?

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

.net - PetaPoco を使用して proc が出力パラメータ値を返さない

これを SQL Server から実行すると、問題なく出力パラメーターを取得できます。

出力パラメーターは 18 を返します。しかし、PetaPoco からこれを行うと、出力パラメーターは null を返します。これらの組み合わせを試しました:

私が試した3つのステートメントは失敗します。それらは機能していましたが、何が変わったのかわかりません...突然、これらのエラーが発生しました...

理由はありますか?

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

sql-server-2008 - petapoco のストアド プロシージャの戻り値は常に -1 を返します (出力パラメータではありません)

私は次のようなことを試みています:

しかし、spResult は常に -1 のようです。

ストアドプロシージャではありますが、間違いなく0を返します。SQLサーバー自体で同じパラメーターを使用して検証しました。

出力パラメーターは正常に機能しますが、多くのストアド プロシージャを変更する必要があるため、これは私が好む方法ではありません。

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

c# - PetaPoco ストアド プロシージャ エラー「キーワード 'FROM' 付近の構文が正しくありません。」}

TSQL および SQL Server 2005 で C# を使用しています

PetaPoco を使用して、データセットをオブジェクトのリストとして返そうとしています。これは私が今使っているコードです

エラー メッセージは、petaPoco が失敗した場合の一般的な sql エラーだと思います。

最初はパラメーターを含むストアド プロシージャを使用していましたが、@ 文字が問題を引き起こしていました。@@ で修正すると、このエラーが発生し始めたので、単純な select ステートメントでストアド プロシージャを作成しました。この手順は、Management Studio で完全に正常に実行されます。

select ステートメントで PetaPoco を使用することは問題なく、データは動的モデルまたはオブジェクト モデルの両方に完全に適切にマップされます。ガベージ SQL 文字列を作成しましたが、同じエラーが返されました。これは、一般的なエラーのアイデアを取得する場所です。

これは私が使用している選択であり、正常に動作します

0 投票する
5 に答える
1266 参照

c# - セミフレキシブルスキーマ設計のデータベースで使用するORM

私はDapper、Massive、PetaPocoなどの「マイクロ」アプローチが好きで、データベースに送信するSQLを制御するのが好きです。ほとんどの場合、比較的単純です。また、POCOを使用するのも好きですが、やや柔軟なスキーマ設計を扱う場合、問題が発生することがよくあります:)

Personエンティティがあり、常に次のプロパティがあるとします。

  • Id
  • 名前
  • Eメール
  • 電話

ただし、場合によっては、次のような追加のプロパティが存在する可能性があります。

  • SpecialPhoneNumber
  • VeryCustomValue

いつもそこにあるとわかっている共通の特性を持つPOCOが本当に欲しいです。ただし、キー/値コレクションで他のアクセス可能なものを用意してください。

最善のアプローチは何でしょうか?そして、言及された「mirco-orm」のいずれかがこれをサポートしていますか?私はそれらすべてを調べましたが、それらがそうであるという兆候は見つかりませんでしたが、何かが足りないのかもしれません。

SqlDataReaderを使用してこれを直接行うことは可能でしょうか?または、リフレクションを使用してオブジェクトを作成するときに、数百行を読み取るパフォーマンスが低下しますか?言及されたormはすべてかなりうまくいくようで、下にあるDataReaderを使用していると思います。

あなたが助けることができることを願っています:)

編集:私たちはおそらく、アプリケーションアーキテクチャを制御できないことを言及する必要があります。これは、個々の顧客がアプリケーションと基盤となるデータベースをカスタマイズできるようにするERPソリューションです。アプリケーションにフィールドを追加すると、データベースに列が追加されます。悪い私!そもそもそれを明確にしないため

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

petapoco - 例外の詳細: System.ArgumentNullException: 値を null にすることはできません。パラメーター名: 実行時の meth

API クラスを含むプロジェクトがあり、そのプロジェクトで Database.cs を生成しました。私の MVC プロジェクトでは、API を参照しました。アプリケーションを実行すると、次のようなエラー メッセージが表示されます。なぜこのエラー メッセージが表示されるのか理解できないので、誰か助けてください。

http://www.garethelms.org/2011/05/help-getting-started-with-petapoco/#comment-69から、petaPOCo がインストールされて以来、すべての GetSetMethod() が GetSetMethod(true) であることがわかります.

値を null にすることはできません。パラメーター名: meth 説明: 現在の Web 要求の実行中に未処理の例外が発生しました。エラーの詳細とコード内のどこでエラーが発生したかについては、スタック トレースを確認してください。

例外の詳細: System.ArgumentNullException: 値を null にすることはできません。パラメータ名:メタ

ソース エラー:

1990 行: } 1991 行: 1992 行: il.Emit(OpCodes.Callvirt, pc.PropertyInfo.GetSetMethod(true)); // poco Line 1993: Handled = true; 行 1994: }

ソース ファイル: C:\Dev\MyProjectTest\Code\API\Models\PetaPoco.cs 行: 1992

スタックトレース:

[ArgumentNullException: 値を null にすることはできません。パラメータ名: meth]
System.Reflection.Emit.DynamicILGenerator.Emit(OpCode opcode, MethodInfo meth) +9492330 PetaPoco.PocoData.GetFactory(String sql, String connString, Boolean ForceDateTimesToUtc, Int32 firstColumn, Int32 countColumns, IDataReader r) in C: \Dev\MyProjectTest\Code\API\Models\PetaPoco.cs:1992
PetaPoco.d__7 1..ctor(IEnumerable 1 source) +58 PetaPoco.Database.Fetch(String sql, Object[] args) in C:\Dev\ MyProjectTest\Code\API\Models\PetaPoco.cs:601 PecaTest.NewProject.API.Customer.LoadSortedByName() in C:\Dev\MyProjectTest\Code\API\Customer.cs:681.MoveNext() in C:\Dev\MyProjectTest\Code\API\Models\PetaPoco.cs:765
System.Collections.Generic.List
1 collection) +327 System.Linq.Enumerable.ToList(IEnumerable


PecaTest.NewProject.MvcUI.Models.CustomerListModel..ctor() in C:\Dev\MyProjectTest\Code\MvcUI\Models\CustomerListModel.cs:14
PecaTest.NewProject.MvcUI.Controllers.CustomerController.GetIndexView() in C:\ Dev\MyProjectTest\Code\MvcUI\Controllers\CustomerController.cs:82
PecaTest.NewProject.MvcUI.Controllers.CustomerController.Index() in C:\Dev\MyProjectTest\Code\MvcUI\Controllers\CustomerController.cs:19
lambda_method(Closure 、 ControllerBase 、 Object[] ) +96
System.Web.Mvc.ActionMethodDispatcher.Execute(ControllerBase コントローラー、Object[] パラメーター) +51
System.Web.Mvc.ReflectedActionDescriptor.Execute(ControllerContext controllerContext、IDictionary 2 パラメーター) +52 System. Web.Mvc.<> c_DisplayClassd.b2 parameters) +409
System.Web.Mvc.ControllerActionInvoker.InvokeActionMethod(ControllerContext controllerContext, ActionDescriptor actionDescriptor, IDictionary

_a() +127 System.Web.Mvc.ControllerActionInvoker.InvokeActionMethodFilter(IActionFilter フィルター、ActionExecutingContext preContext、Func 1 継続) +436 System.Web.Mvc.<>c_ DisplayClassf.b _c() +61 System.Web.Mvc. ControllerActionInvoker.InvokeActionMethodWithFilters(ControllerContext controllerContext、IList 2 パラメーター) +305 System.Web.Mvc.ControllerActionInvoker.InvokeAction(ControllerContext controllerContext、文字列 actionName) +830 System.Web.Mvc.Controller.ExecuteCore() +136 System.Web.Mvc. ControllerBase.Execute(RequestContext requestContext) +111 System.Web.Mvc.ControllerBase.System.Web.Mvc.IController.Execute(RequestContext requestContext) +39 System.Web.Mvc.<>c_1 continuation) +436
System.Web.Mvc.<>c__DisplayClassf.<InvokeActionMethodWithFilters>b__c() +61 System.Web.Mvc.ControllerActionInvoker.InvokeActionMethodFilter(IActionFilter filter, ActionExecutingContext preContext, Func

1 filters, ActionDescriptor actionDescriptor, IDictionary



DisplayClass8.b _4() +65
System.Web.Mvc.Async.<>c_ DisplayClass1.b _0() +44
System.Web.Mvc.Async.<>c__DisplayClass8 1.<BeginSynchronous>b__7(IAsyncResult _) +42 System.Web.Mvc.Async.WrappedAsyncResult1.End() +140 System.Web.Mvc .Async.AsyncResultWrapper.End(IAsyncResult asyncResult、Object タグ) +54
System.Web.Mvc.Async.AsyncResultWrapper.End(IAsyncResult asyncResult、Object タグ) +40
System.Web.Mvc.MvcHandler.EndProcessRequest(IAsyncResult asyncResult) +52 System.Web.Mvc.MvcHandler.System.Web.IHttpAsyncHandler.EndProcessRequest(IAsyncResult 結果) +38
System.Web.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() +8969117 System.Web.HttpApplication.ExecuteStep(IExecutionStep ステップ) , Boolean& completedSynchronously) +184

-------------------------------------------------- ------------------------------ バージョン情報: Microsoft .NET Framework バージョン:4.0.30319; ASP.NET バージョン:4.0.30319.272


顧客クラス

`

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

petapoco - データベースの列に直接マップされないプロパティの処理

次のテーブルがあります

クライアント テーブルと製品テーブル

ClientProduct テーブル

製品クラス

クライアントクラス

ClientProduct クラス

petaPOCO で次のことを行うにはどうすればよいですか?

そのクライアントのすべての製品のリストを取得できるように、後でビューで使用します

0 投票する
3 に答える
1564 参照

c# - リストから重複したアイテムを削除するC#で

数日前から解決しようとしている問題よりも少し複雑な問題があります。私は PetaPoco ORM を使用していますが、次のような複雑なクエリを実行する他の方法は見つかりませんでした。

ユーザーの機能を取得しようとしていますが、システムには実際にユーザーに機能を割り当てる方法、またはそのユーザーに指示する方法、またはユーザーを役割に割り当てる方法があります。ストアド プロシージャを使用してこのマージされたリストを取得したかったのですが、カーソルが必要だったので、Web アプリケーションでこれを行う方が簡単で速いと思いました。したがって、2 つのダイナミクスとメンバーの機能がロールの機能よりも優先されるため、ループを使用して確認する必要があります。そして、私はこれが好きでした:

したがって、計画は重複したエントリを削除することです。次の方法を使用してみましたが、結果はありません。

何か助けはありますか?ありがとう