問題タブ [iconvertible]

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 に答える
4241 参照

c# - MySQLデータプロバイダー-タイプ「System.Byte[]」のオブジェクトをタイプ「System.IConvertible」にキャストできません

Entity Frameworkコンテキストで問題が発生しているため、デバッグが非常に面倒です。昨日、アプリケーションに機能を追加して、エンティティの1つに子エンティティの追加コレクション(Modelsと呼ばれる)を追加しました。親オブジェクトをクエリするときに、そのコレクションをInclude()に式の1つを更新した後、クエリが失敗します。以前は正常に機能していたコレクションの別の1つがInclude()された場合のInvalidCastException。


式をいじって、さまざまなコレクションを削除したり、Include()された子を変更したりすると、前述の例外の原因は、この正確なアイテムの組み合わせであることがわかりました。これらのIncludes()のいずれかを削除しても例外はありませんが、これらの3つの子では、コレクションに1つ以上のエンティティを持つ単一のProductをプルしようとするたびに1つあります。FirstOrDefault(p => p.ID == id)を削除した場合、またはコレクションが空の場合、例外はスローされません。ColorsColors

Modelsコレクションの追加が私のクエリのブレークポイントであるように思われますが、その理由はよくわかりません。

例外の正確な原因はMysql.Data次のとおりです。スタックトレースは次のようになります。

エンティティ定義(関連フィールドのみ)

製品

  • intID
  • EntityCollection<ProductColorOption>
  • EntityCollection<ProductImage>画像
  • EntityCollection<ProductModel>モデル

ProductColor

  • intID

ProductColorOption

  • intID
  • int製品番号
  • intProductColorID

製品モデル

  • intID
  • int製品番号

ProductImage

  • intID
  • int製品番号
  • sbyte?注文

関係

  • Product.ID FKProductImage.ProductID (1対多)
  • Product.ID FKProductColorOption.ProductID (1対多)
  • Product.ID FKProductModel.ProductID (1対多)
  • ProductColor.ID FKProductColorOption.ProductColorID (1対多)

皆さんありがとう!


アップデート

以下のgaustinの提案は問題を修正しますが(これ以上の例外はありません)、実際の問題を対象としているわけではありません。そのため、「未回答」という質問は残しておきます。

アップデート2

バグはEntityFrameworkではなく、MySQLDataProviderに関係していることがわかりました。何らかの理由で、ProductColor.IDをbyte []として扱い、それを盲目的にintにキャストしようとしています。これは、EntityFrameworkの問題ではありません。サンマイクロシステムズのオラクルを呪う。

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

c# - 2つのタイプを比較、合計できるかどうかを確認する方法は?

2つのタイプ(タイプa、タイプb)が与えられた場合、それら2つを比較、合計できるかどうかを調べる「良い」方法はありますか?

タイプが実装されている場合、IConvertible両方を変換して、10進数と言って「Convert.ToDecimal(a) > Convert.ToDecimal(b)」を実行できると考えていましたか?

私は式評価器を構築しており、あらゆる種類のオブジェクトを操作できるようにしたいため、型を別の型と比較できるかどうかを知る必要があります (両側で同じ型である必要はありません。例double > int)

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

sql - オブジェクトはIConvertibleを実装する必要がありますか?

「データ型nvarcharからdatetimeへの変換エラー」エラーを解決した後にこれを取得します。Vb.net/SQL Server 2000を使用して、gridview/sqldatasourceを介して行を更新します。

ストアドプロシージャ:

SQLデータソース:

何が原因であるかがわかるまで、Date_StartパラメーターとDate_Endパラメーターを今のところ最小の日付に設定しています。

何か案は?

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

.net - Convert.ChangeTypeがオブジェクトパラメータを受け取るのはなぜですか?

このConvertクラスは、.NET1.0から存在しています。このIConvertible時からインターフェースも存在しています。

このConvert.ChangeTypeメソッドは、実装する型のオブジェクトでのみIConvertible機能します(実際、私が間違っていない限り、クラスによって提供されるすべての変換メソッドはこの方法です)。Convertでは、なぜパラメータタイプなのobjectですか?

言い換えれば、これの代わりに:

なぜ署名がこれではないのですか?

私には奇妙に思えます。

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

linq - 「インスタンス化できませんでした」NHibernate.QueryExceptionは、結合されたLinqクエリによって発生します

次の NHibernate.Linq ステートメントを実行すると"could not instantiate: Reservation001.Services.ReservationDto"、内部 InvalidCast 例外 (「オブジェクトは IConvertible を実装する必要があります。」) を含む NHibernate.QueryException が発生します。

ただし、上記を 2 つのクエリに分割し、最初のクエリの結果に対して ToList() を呼び出すと、コードは正常に実行されます。

単一ステートメント バージョンで例外が発生するのはなぜですか?

ありがとう、
ベン

0 投票する
6 に答える
59779 参照

c# - エラー: オブジェクトは IConvertible を実装する必要があります

以下のエラーが発生したときに、リストボックス項目と各リストボックス項目のテキストボックス値をデータベースに挿入しようとしています。

リストボックスの項目のみを挿入しようとすると成功しますが、テキストボックスの値を挿入しようとすると、このエラーが発生します。私が間違っていることを教えてください。


c#コード


リストボックスのすべての値をデータベースに追加したい。

第二に、私が使用しようとしても。

選択した項目

次に、次のエラーが表示されます。

私が間違っているところはありますか?

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

c# - Matisses Linq IConvertible Exception マティス C#

マティスオブジェクトデータベースからレコードを取得する際に問題が発生し、今私に届いています...基本的にすべてを試し、カウントメッセージボックスを使用しても、linqクエリが1つのオブジェクトを取得していることを示していますが、IConvertibleエラーが発生したときに動作するはずですが、基本的に既存のレコードを編集しようとしていますが、IConvertible である必要があることを教えてくれますが、これは SQL を使用している場合に機能し、Matisse を使用している他のユーザーにも機能します。

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

c# - IConvertible インターフェイスは DataRow とどのように連携しますか?

ConvertクラスとインターフェイスIConvertibleDataRow. このコードがある場合:

への呼び出しConvert.ToInt32(s)は、次を実行します。

では、これは次のようなコード行でどのように機能しますか:

DataRow もオブジェクトも IConvertible を実装していない場合は?

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

c# - CA2225、IConvertible、およびリリース ビルドのパフォーマンス

明示的および暗黙的なキャスト演算子を公開するオブジェクトを作成しています。コード分​​析では、一致する名前付きメソッドも作成することが提案されました ( CA2225: 演算子のオーバーロードには代替の名前が付けられています)。また、引数としてIConvertibleを受け取りますが、多数の ToXXX メソッドを含むを実装することにIFormatProviderしました。

これらのほとんどは同じコードを実行する別の方法であるため、リリース モードでコンパイルするときに、パフォーマンスの問題を無効にするために呼び出しを最適化/インライン化して、コードを繰り返す必要がないかどうか疑問に思っています。

例えば:

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

c# - 変更不可能なタイプのIConvertibleのような機能の実装

IConvertible要するに、問題があります。実装されていれば、DateTimeOffset問題IConvertibleは発生しません。

拡張メソッドを使用してインターフェイスを実装することはできないため、道路は閉鎖されています。構造体DateTimeOffsetは部分的ではないため、そのように拡張することはできません。

いくつかのMSDNドキュメントを読んでいると、TypeCode列挙型に出くわしました。これは、IConvertibleが正しく機能するために必要なようです。そして、私の残念なことに、列挙型にはTimeSpanも含まれていませんでした。これにより、and (ie = P)Tupleで-like構造を使用するオプションが閉じられます。DateTimeTimeSpanDateTimeOffset

私の質問は次のとおりです。基本的なIConvertibleまたは同様のサポートがあるDateTimeOffsetと同等のものをどのように実装しますか?

実装は、[index,TType] where TType : IConvertible(セッター、ゲッター、トライゲッターの両方の)機能を備えた派手な怠惰な辞書の実装に関するものであり、タイムゾーン固有のデータを格納できる必要があります。

これまでの私の考え:

  • ISuperConvertible実際には単なる拡張である新しいインターフェースを作成し、特別な場合IConvertibleを作成します。DateTimeOffsetこれにより、IConvertibleのサポートは一般的に機能しなくなりますが、この非常に特殊なケースでは機能します。長所と短所?

  • DateTimeOffsetsを格納するために2つの「スロット」を使用します。1つはと30分オフセットDateTime用ですint(すべてのタイムゾーンは1時間ではありません= /)。その後、機能が失われcache[ApplicationStrings.LastUpdate, default : DateTimeOffset.Min]ます。

それらは私の主な考えを表しています。つまり、ブレークDateTimeOffsetアンドキープIConvertibleまたはブレークIConvertibleアンドキープDateTimeOffsetです。

私はまだC#の本質的な特性に慣れていないので、どんな洞察も役に立ちます。あなたの考えは何ですか?

編集:追加:

  • 現在、DateTime(固定タイムゾーン)を使用する実用的なソリューションがありますが、タイムゾーンも必要です。最適なシナリオは、代わりにどこでもDateTimeOffsetを使用することです。本質的に問題はリファクタリングではありませんが、私の特定の問題はです。
  • これは非常に大規模なアプリケーションであり、さまざまなサービスやストレージと通信するためにエンティティフレームワークやその他のよりあいまいなフレームワークを使用します。したがって、単純なシステム定義タイプを維持しても、LINQ-to-Xの最適化などが損なわれることはありません(これらがどれほど難しいかはわかりません)自分でやることです)。
  • 別の人がいつやって来て、タイムスタンプに使用されるDateTimeがあることに気づき、オフセット(タイムゾーン)を考慮せずにそれを使用するのかわからないため、データの分割には反対です。