問題タブ [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.
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)を削除した場合、またはコレクションが空の場合、例外はスローされません。Colors
Colors
Modelsコレクションの追加が私のクエリのブレークポイントであるように思われますが、その理由はよくわかりません。
例外の正確な原因はMysql.Data
次のとおりです。スタックトレースは次のようになります。
エンティティ定義(関連フィールドのみ)
製品
int
IDEntityCollection<ProductColorOption>
色EntityCollection<ProductImage>
画像EntityCollection<ProductModel>
モデル
ProductColor
int
ID
ProductColorOption
int
IDint
製品番号int
ProductColorID
製品モデル
int
IDint
製品番号
ProductImage
int
IDint
製品番号sbyte?
注文
関係
- Product.ID
FK
ProductImage.ProductID (1対多) - Product.ID
FK
ProductColorOption.ProductID (1対多) - Product.ID
FK
ProductModel.ProductID (1対多) - ProductColor.ID
FK
ProductColorOption.ProductColorID (1対多)
皆さんありがとう!
アップデート
以下のgaustinの提案は問題を修正しますが(これ以上の例外はありません)、実際の問題を対象としているわけではありません。そのため、「未回答」という質問は残しておきます。
アップデート2
バグはEntityFrameworkではなく、MySQLDataProviderに関係していることがわかりました。何らかの理由で、ProductColor.IDをbyte []として扱い、それを盲目的にintにキャストしようとしています。これは、EntityFrameworkの問題ではありません。サンマイクロシステムズのオラクルを呪う。
c# - 2つのタイプを比較、合計できるかどうかを確認する方法は?
2つのタイプ(タイプa、タイプb)が与えられた場合、それら2つを比較、合計できるかどうかを調べる「良い」方法はありますか?
タイプが実装されている場合、IConvertible
両方を変換して、10進数と言って「Convert.ToDecimal(a) > Convert.ToDecimal(b)
」を実行できると考えていましたか?
私は式評価器を構築しており、あらゆる種類のオブジェクトを操作できるようにしたいため、型を別の型と比較できるかどうかを知る必要があります (両側で同じ型である必要はありません。例double > int
)
sql - オブジェクトはIConvertibleを実装する必要がありますか?
「データ型nvarcharからdatetimeへの変換エラー」エラーを解決した後にこれを取得します。Vb.net/SQL Server 2000を使用して、gridview/sqldatasourceを介して行を更新します。
ストアドプロシージャ:
SQLデータソース:
何が原因であるかがわかるまで、Date_StartパラメーターとDate_Endパラメーターを今のところ最小の日付に設定しています。
何か案は?
.net - Convert.ChangeTypeがオブジェクトパラメータを受け取るのはなぜですか?
このConvert
クラスは、.NET1.0から存在しています。このIConvertible
時からインターフェースも存在しています。
このConvert.ChangeType
メソッドは、実装する型のオブジェクトでのみIConvertible
機能します(実際、私が間違っていない限り、クラスによって提供されるすべての変換メソッドはこの方法です)。Convert
では、なぜパラメータタイプなのobject
ですか?
言い換えれば、これの代わりに:
なぜ署名がこれではないのですか?
私には奇妙に思えます。
linq - 「インスタンス化できませんでした」NHibernate.QueryExceptionは、結合されたLinqクエリによって発生します
次の NHibernate.Linq ステートメントを実行すると"could not instantiate: Reservation001.Services.ReservationDto"
、内部 InvalidCast 例外 (「オブジェクトは IConvertible を実装する必要があります。」) を含む NHibernate.QueryException が発生します。
ただし、上記を 2 つのクエリに分割し、最初のクエリの結果に対して ToList() を呼び出すと、コードは正常に実行されます。
単一ステートメント バージョンで例外が発生するのはなぜですか?
ありがとう、
ベン
c# - エラー: オブジェクトは IConvertible を実装する必要があります
以下のエラーが発生したときに、リストボックス項目と各リストボックス項目のテキストボックス値をデータベースに挿入しようとしています。
リストボックスの項目のみを挿入しようとすると成功しますが、テキストボックスの値を挿入しようとすると、このエラーが発生します。私が間違っていることを教えてください。
c#コード
リストボックスのすべての値をデータベースに追加したい。
第二に、私が使用しようとしても。
選択した項目
次に、次のエラーが表示されます。
私が間違っているところはありますか?
c# - Matisses Linq IConvertible Exception マティス C#
マティスオブジェクトデータベースからレコードを取得する際に問題が発生し、今私に届いています...基本的にすべてを試し、カウントメッセージボックスを使用しても、linqクエリが1つのオブジェクトを取得していることを示していますが、IConvertibleエラーが発生したときに動作するはずですが、基本的に既存のレコードを編集しようとしていますが、IConvertible である必要があることを教えてくれますが、これは SQL を使用している場合に機能し、Matisse を使用している他のユーザーにも機能します。
c# - IConvertible インターフェイスは DataRow とどのように連携しますか?
Convert
クラスとインターフェイスIConvertible
がDataRow
. このコードがある場合:
への呼び出しConvert.ToInt32(s)
は、次を実行します。
では、これは次のようなコード行でどのように機能しますか:
DataRow もオブジェクトも IConvertible を実装していない場合は?
c# - CA2225、IConvertible、およびリリース ビルドのパフォーマンス
明示的および暗黙的なキャスト演算子を公開するオブジェクトを作成しています。コード分析では、一致する名前付きメソッドも作成することが提案されました ( CA2225: 演算子のオーバーロードには代替の名前が付けられています)。また、引数としてIConvertible
を受け取りますが、多数の ToXXX メソッドを含むを実装することにIFormatProvider
しました。
これらのほとんどは同じコードを実行する別の方法であるため、リリース モードでコンパイルするときに、パフォーマンスの問題を無効にするために呼び出しを最適化/インライン化して、コードを繰り返す必要がないかどうか疑問に思っています。
例えば:
c# - 変更不可能なタイプのIConvertibleのような機能の実装
IConvertible
要するに、問題があります。実装されていれば、DateTimeOffset
問題IConvertible
は発生しません。
拡張メソッドを使用してインターフェイスを実装することはできないため、道路は閉鎖されています。構造体DateTimeOffsetは部分的ではないため、そのように拡張することはできません。
いくつかのMSDNドキュメントを読んでいると、TypeCode
列挙型に出くわしました。これは、IConvertibleが正しく機能するために必要なようです。そして、私の残念なことに、列挙型にはTimeSpanも含まれていませんでした。これにより、and (ie = P)Tuple
で-like構造を使用するオプションが閉じられます。DateTime
TimeSpan
DateTimeOffset
私の質問は次のとおりです。基本的なIConvertibleまたは同様のサポートがあるDateTimeOffsetと同等のものをどのように実装しますか?
実装は、[index,TType] where TType : IConvertible
(セッター、ゲッター、トライゲッターの両方の)機能を備えた派手な怠惰な辞書の実装に関するものであり、タイムゾーン固有のデータを格納できる必要があります。
これまでの私の考え:
ISuperConvertible
実際には単なる拡張である新しいインターフェースを作成し、特別な場合IConvertible
を作成します。DateTimeOffset
これにより、IConvertibleのサポートは一般的に機能しなくなりますが、この非常に特殊なケースでは機能します。長所と短所?DateTimeOffset
sを格納するために2つの「スロット」を使用します。1つはと30分オフセットDateTime
用ですint
(すべてのタイムゾーンは1時間ではありません= /)。その後、機能が失われcache[ApplicationStrings.LastUpdate, default : DateTimeOffset.Min]
ます。
それらは私の主な考えを表しています。つまり、ブレークDateTimeOffset
アンドキープIConvertible
またはブレークIConvertible
アンドキープDateTimeOffset
です。
私はまだC#の本質的な特性に慣れていないので、どんな洞察も役に立ちます。あなたの考えは何ですか?
編集:追加:
- 現在、DateTime(固定タイムゾーン)を使用する実用的なソリューションがありますが、タイムゾーンも必要です。最適なシナリオは、代わりにどこでもDateTimeOffsetを使用することです。本質的に問題はリファクタリングではありませんが、私の特定の問題はです。
- これは非常に大規模なアプリケーションであり、さまざまなサービスやストレージと通信するためにエンティティフレームワークやその他のよりあいまいなフレームワークを使用します。したがって、単純なシステム定義タイプを維持しても、LINQ-to-Xの最適化などが損なわれることはありません(これらがどれほど難しいかはわかりません)自分でやることです)。
- 別の人がいつやって来て、タイムスタンプに使用されるDateTimeがあることに気づき、オフセット(タイムゾーン)を考慮せずにそれを使用するのかわからないため、データの分割には反対です。