主キーがstring型の場合にFind/TryFindメソッドで例外

Aug 4, 2011 at 8:06 AM

こんにちは。

C#でJavaのMirageに相当するものがないかと探し、Somaを利用しています。お世話になっております。

 

主キーがstring型の場合にFind/TryFindメソッドで

db.TryFind<Hoge>(con, id);

以下の例外が発生します。

[SOMA4003] The length of the argument for the parameter "id" must be 1, but is 7.
   場所 Soma.Core.DbImpl.FindCore[T,TResult](FSharpList`1 idList, FSharpFunc`2 resultHandler)
   場所 Soma.Core.DbImpl.TryFind[T](FSharpList`1 idList)
   場所 Soma.Core.LocalDb.TryFind[T](DbConnection connection, Object id)
   場所 ...

 

ただし、以下のようにすると例外は発生しません。

db.TryFind<Hoge>(con, new {id});

 

C#でコーディングしており、F#のソースはよく読めない(勉強します)のですが、推測するに配列のLengthとしてとりたい長さを、

StringのLengthとして取得しているため、この問題が発生しているのだと思うのですがどうでしょう?

Aug 4, 2011 at 1:49 PM
nikochan2k wrote:

C#でコーディングしており、F#のソースはよく読めない(勉強します)のですが、推測するに配列のLengthとしてとりたい長さを、

StringのLengthとして取得しているため、この問題が発生しているのだと思うのですがどうでしょう?

フィードバックありがとうございます!

ご指摘の通り、Lengthの取得の仕方に誤りがありました。

バージョン1.4.0.0で修正しています。