[seasar-dotnet:412] Re: _を含むカラムがあるテーブルについて

Kazuya Sugimoto sugimotokazuya @ gmail.com
2006年 12月 1日 (金) 19:20:40 JST


杉本です。

列名がBOOK_ID, BOOK_ID_のように"_"が間にも後ろにも付いた場合、
プロパティは、BookId, BookId_とせずにBook_id, Book_id_にしないと
いけないという仕様にするということで良いですよね。

小谷さんの案で変更お願いしてもよろしいでしょうか?>小谷さん

06/12/01 に koyak さんは書きました:
> 小谷です。
>
> >>なるほど。想定してませんでした。
> >>対応したいと思います。
>
> meiさんが提示されたコードを少しだけ
> いじってみました(↓)。
> そのままでもDB列名と一致するプロパティがあった
> 場合はそちらを優先して対応づけます。
> いかがでしょうか?
> =================================================
> for(IEnumerator enu = columnSet.GetEnumerator(); enu.MoveNext();)
> {
>         //  koyak modified ==========================================
>         //string columnName = (string) enu.Current;
>     //string columnName2 = columnName.Replace("_", "");
>     //for(int i = 0; i < PropertyTypeSize; ++i)
>     //{
>     //    IPropertyType pt = GetPropertyType(i);
>     //    if(string.Compare(pt.ColumnName, columnName2, true) == 0)
>     //    {
>     //        pt.ColumnName = columnName;
>     //        break;
>     //    }
>     //}
>
>     string plainColumnName = (string)enu.Current;
>     string columnName = "";
>     if (HasPropertyType(plainColumnName)) {
>         columnName = plainColumnName;
>     } else {
>         string noUnderbarColumnName = plainColumnName.Replace("_", "");
>         if (HasPropertyType(noUnderbarColumnName)) {
>                 columnName = noUnderbarColumnName;
>         }
>     }
>     if (columnName.Length > 0) {
>         IPropertyType pt = GetPropertyType(columnName);
>         pt.ColumnName = columnName;
>         break;
>         }
>         //  ==========================================================
> }
> ===================================================
> テスト用テーブルのEMPテーブルにENAME_という列を追加し、
> Seasar.Dao.Testsの
> EmployeeエンティティにEname_プロパティを追加しての
> テストは通過することは確認しています。
> (DB:SQL Server 2005 Express)
>
> > (S2Daoは、基本方針として、BOOK_ID と BookId を
> >  同じものとして扱っていますので...)
>
> となると、この修正を入れた場合、この前提を
> 少し崩すことになってしまうかもしれませんね。。。
>



-- 
Kazuya Sugimoto
http://d.hatena.ne.jp/sugimotokazuya/


seasar-dotnet メーリングリストの案内