2011-02-01から1ヶ月間の記事一覧

Soma 0.1.0.1 の属性(アトリビュート)の紹介

Somaが提供する属性はたった4つです。いずれもレコード型(またはそのフィールド)にのみ指定できます。 Id 主キーに対応するフィールドに指定。採番方法を設定できる Version 楽観的排他制御のためのバージョン番号に対応するフィールドに指定。現状は数値…

Soma 0.1.0.1 リリース

F#に特化したO/Rマッパー Soma 0.1.0.1をリリースしました。 http://soma.codeplex.com/ ドキュメントはまだほとんどないのですが、codeplexのHomeにはCRUDのサンプルを載せました。とりあえずはイメージをつかんで貰えればなぁと思います。機能的には、当初…

Soma 0.1.0.1 のクエリ機能の紹介

Somaは「Sql Oriented MApping framework」のアクロニムです。というわけでSQLを柔軟に発行できるのがアピールポイントです。今日はSomaの中心機能であるクエリ機能を紹介したいと思います。SQLはS2Daoに由来する2 Way SQL(SQL文字列をそのままツールで実行…

Somaの適用レイヤについて

SomaのDbモジュールはService層とかBusinessLogic層とか呼ばれるレイヤでは呼び出さず、DAOとかRepositoryに相当するレイヤから利用するのがいいと思います。たとえば、次のような関数の実装として利用するのがいいのではと思います。 パラメータを個別に渡…

シーケンスで列挙しつつ最後の要素かどうか判定する 2

F#

昨日の件、Seq.pairwiseのコードをちょっと変更した関数を作ってもいいかもしれない。 pairwiseを変形したコード たとえばpeekという関数にする。シグネチャは val peek : seq -> seq。module Seq = let peek (source:seq<'T>) = seq { use ie = source.GetE…

シーケンスで列挙しつつ最後の要素かどうか判定する

F#

リストの場合は再帰関数とパターンマッチングでできるんですが、シーケンスだとそうもいかず冗長になっちゃうなぁと思った。 リスト [<Test>] let ``detect last element of list`` () = let rec loop = function | [] -> () | [x] -> printfn "last %d" x | h :: </test>…

ObjectDataSourceを使ったページング

ステートレスなビジネスロジックが一覧データと件数を同時に返すとき 件数を一時的に保持してObjectDataSourceに渡せるようにビジネスロジックを一時的にラップしてあげるといいかもしれない。 GridViewPage.cs using System.Collections.Generic; using Sys…

Doma 1.13.0 リリース

Java6対応のDaoフレームワーク Doma 1.13.0 をリリースしました。 ダウンロードはこちらからどうぞ。 http://doma.seasar.org/downloads.html Mavenをご利用の方はこちらを参照ください。 http://www.seasar.org/wiki/index.php?Maven2RepoRemote 以前のバー…