[seasar-dotnet:1779] Re: メソッド単位にかけたトランザクションがクラス全体にかかる

[E-MAIL ADDRESS DELETED] [E-MAIL ADDRESS DELETED]
2010年 7月 14日 (水) 11:22:01 JST


久保さん

ナガイシです。

ご返信ありがとうございます。

修正分の提供について理解できました。

確かに個々でソース修正できますのでそれがパッチと言えますね。
プロジェクトとして、近日中にリリースが・・・という事はないのですが
できれば今回の修正を含んだ物がここ2ヶ月くらいで
リリースされればありがたい所です。
(私事で恐縮ですが・・・)

まずは今回提供いて頂きましたソースを基に開発を進めて
行きたいと考えています。

ご対応ありがとうございました。


>久保(jflute)です。
>
>ナガイシさん、こんばんは
>
>> また質問で申しわけありませんが
>> オープンソースの利用が初めてでよく分かっていないのですが
>> 今回の修正分はどのように提供されるのでしょうか?
>
>基本的に、1.3.18 で反映されます。
>オープンソースの組織によって色々変わりますが、
>Seasar.NETでは、報告頂いたユーザに修正したSNAPSHOTを
>試してもらって、問題なければ次のバージョンに含めるという
>手順が主です(そうじゃない手順もありますが)。
>もちろんSeasar.NET側でもできるだけテストしますが、
>ユーザの環境でないと再現しにくいものもありますし。
>ということで、ナガイシさんに確認して頂けたので、
>1.3.18 にこの修正が反映される流れです。
>
>パッチを提供する、という運用はあまり行われていません。
>オープンソースなので、修正のSNAPSHOTは公開されていますし、
>そもそもユーザ自身がソースを修正してそれを利用すれば、
>ある意味それがパッチと言えますので。
>
>で、1.3.18 がいつリリースされるかという話は、
>おおよそ、"修正項目が増えてきたら"、
>"早めに提供したい修正項目があったら"、
>"ユーザからのリリース要望があったら"、
>"コミッタがリリース作業する時間が確保できたら"
>のようなところです。
>
>なので、ナガイシさんのプロジェクトの都合で、
>リリースを早めてもらいたいのであれば、
>そのように(このMLで)言って頂ければと。
>(もちろん、"リリース作業時間の確保" の話もあるので、
>すぐにできるかどうか保証はないですが)
>
>2010/7/9  <[E-MAIL ADDRESS DELETED]>:
>> 小谷さん
>>
>> ナガイシです。
>>
>> ご返信ありがとうございます。
>>
>> 結果から話しますと
>> メソッド単位のトランザクションできるように
>> なりました。
>>
>> 下記の手順でDLLを置き換えてうまくできました。
>>
>> 修正して頂き、ありがとうございました。
>>
>>
>> また質問で申しわけありませんが
>> オープンソースの利用が初めてでよく分かっていないのですが
>> 今回の修正分はどのように提供されるのでしょうか?
>>
>> 今回ご提供頂いたソースは現在、Seasar.NetのHPから
>> 入手できる1.3.17とは別もの?なると思います。
>>
>> 例えば、今回の修正内容は1.3.18や
>> 1.3.17のパッチ版などでHPでDLL等含めて提供されるのか
>> など、今後の動き・反映の段取りはどうなるのでしょうか?
>>
>> このあたりの分かるHPや資料などありましたら
>> 入手方法を教えて頂ければありがたいのです。
>>
>> ご指摘等ございましたら、ご返信をお願い致します。
>>
>>
>>
>>>ナガイシさん
>>>
>>>小谷です。
>>>
>>>もしVisualStudioでC#もコンパイル可能な環境でしたら
>>>https://www.seasar.org/svn/s2container.net/trunk/s2container.net/
>>>からsuversionでソースコードを取得し、
>>>コンパイルして他のseasar.net系のdllも一緒に
>>>置き換えてみていただけないでしょうか。
>>>(Seasar.Quillのbinフォルダの中にコンパイルした
>>>dll等が出力されているはずです)
>>>
>>>
>>>2010年7月8日13:45  <[E-MAIL ADDRESS DELETED]>:
>>>> 小谷さん
>>>>
>>>> ナガイシです。
>>>>
>>>> 修正ありがとうございます。
>>>>
>>>> メーリングリストのメールアドレスを変更した為
>>>> スレッドが切れた場合は申し訳ありません。
>>>>
>>>> 投稿元:[seasar-dotnet:1760]メソッド単位にかけたトランザクションがクラス全体にかかる
>>>>
>>>>
>>>> 修正DLLをダウンロードし、置き換えて実行したのですが
>>>> 以下のエラーが発生しました。
>>>>
>>>> Web ServiceのWeb.Configの<quill>タグのところで以下のエラーが
>>>> 出ているようです。
>>>>
>>>> DEBUG 2010-07-08 13:36:17,918 [10] System.Web.Services.Protocols.SoapException:
>>>>  System.Web.Services.Protocols.SoapException: サーバーは要求を処理できませんでした。
>>>>  ---> System.Configuration.ConfigurationErrorsException:
>>>> quill のための構成セクション ハンドラを作成中にエラーが発生しました。:
>>>>  アセンブリ 'Seasar, Version=1.3.17.0, Culture=neutral, PublicKeyToken=1d0d0c484d50ca62' から
>>>> 型 'Seasar.Framework.Util.ConfigSectionUtil' を読み込めませんでした。
>>>>  (D:\Program Files\Source\SampleSmartClient\SampleSmartClient\SampleWebService\web.config line 142)
>>>> ---> System.TypeLoadException:
>>>>  アセンブリ 'Seasar, Version=1.3.17.0, Culture=neutral, PublicKeyToken=1d0d0c484d50ca62' から
>>>> 型 'Seasar.Framework.Util.ConfigSectionUtil' を読み込めませんでした。
>>>>
>>>> DLLを元に戻すと上記のエラーは発生しませんでした。
>>>>
>>>> 何かお気づきの点があれば、ご返信をお願いいたします。
>>>>
>>>>
>>>>
>>>>
>>>>>ナガイシさん
>>>>>
>>>>>小谷です。
>>>>>
>>>>>ソースコードを修正しました。
>>>>>
>>>>>VB.NETをお使いとのことなので
>>>>>https://www.seasar.org/svn/s2container.net/trunk/s2container.net/seasar_dotnet1760
>>>>>にコンパイル済の修正DLLを一時的に置きました。
>>>>>
>>>>>お使いのSeasar.Quill.dllをこのDLLに置き換えて
>>>>>問題が修正されているか(Transaction属性を指定したメソッドにのみ
>>>>>トランザクションが適用されているか)ご確認いただけないでしょうか。
>>>>>
>>>>>2010年7月7日6:42 koyak <[E-MAIL ADDRESS DELETED]>:
>>>>> ナガイシさん
>>>>>
>>>>> 小谷です。
>>>>>
>>>>> ご確認ありがとうございます。
>>>>> こちらの環境でも問題が再現しました。
>>>>>
>>>>> 修正方法を考えてみようと思います。
>>>>>
>>>>> 2010年7月6日21:59 kircheis <[E-MAIL ADDRESS DELETED]>:
>>>>>> 小谷さん ご返信ありがとうございます。
>>>>>> 回答が遅れてすみません。
>>>>>>
>>>>>> 最初にログの件ですが
>>>>>> SampleBusinessLogicImplクラスのDataInsertメソッドにのみ
>>>>>> Transaction属性を付加し、DataInsertメソッドを実行した場合のログです。
>>>>>> DEBUG 2010-07-06 14:00:30,225 [4] 論理的なコネクションを取得しました
>>>>>> DEBUG 2010-07-06 14:00:30,225 [4] トランザクションを開始しました
>>>>>> DEBUG 2010-07-06 14:00:30,225 [4] INSERT INTO M_TEST (BIKO, SEQID,
>>>>>> BIRTH, NAME) VALUES ('aaaaa', ' ', '2010-07-06 14.00.19', 'bb')
>>>>>> DEBUG 2010-07-06 14:00:30,240 [4] トランザクションをロールバックしました
>>>>>> DEBUG 2010-07-06 14:00:30,240 [4] 論理的なコネクションを閉じました
>>>>>>
>>>>>> 次にDataInsertメソッドにのみTransaction属性を付加し
>>>>>> 付加していないSampleBusinessLogicImplクラスのDataUpdateメソッドを
>>>>>> 実行した場合のログです。
>>>>>> DEBUG 2010-07-06 14:01:45,365 [4] 論理的なコネクションを取得しました
>>>>>> DEBUG 2010-07-06 14:01:45,365 [4] トランザクションを開始しました
>>>>>> DEBUG 2010-07-06 14:01:45,365 [4] UPDATE M_TEST SET BIKO = 'aaaaaa',
>>>>>> BIRTH = '2010-07-06 14.01.38', NAME = 'bbbbb WHERE SEQID = '9 '
>>>>>> DEBUG 2010-07-06 14:01:45,381 [4] トランザクションをコミットしました
>>>>>> DEBUG 2010-07-06 14:01:45,381 [4] 論理的なコネクションを閉じました
>>>>>>
>>>>>> Transaction属性を全く付加しない場合のDataInsertメソッドのログは以下の通
>>>>>> りです。
>>>>>> DEBUG 2010-07-06 14:03:27,365 [4] 論理的なコネクションを取得しました
>>>>>> DEBUG 2010-07-06 14:03:27,381 [4] 論理的なコネクションを閉じました
>>>>>> DEBUG 2010-07-06 14:03:27,428 [4] INSERT INTO M_TEST (BIKO, SEQID,
>>>>>> BIRTH, NAME) VALUES (aaaaa', '9 ', '2010-07-06 14.01.38', 'bbbbb')
>>>>>> DEBUG 2010-07-06 14:03:27,428 [4] 論理的なコネクションを取得しました
>>>>>> DEBUG 2010-07-06 14:03:27,443 [4] 論理的なコネクションを閉じました
>>>>>>
>>>>>> 上記のログはSampleBusinessLogicImplクラスのメソッドに
>>>>>> Transaction属性を付加した場合です。
>>>>>> SampleBusinessLogicImplクラスに対してTransaction属性を
>>>>>> 付加した場合、当然トランザクションは実行されます。
>>>>>>
>>>>>> また、ISampleBusinessLogicインターフェースのDataInsertメソッドや
>>>>>> IM_TESTdaoインターフェースのInsertDataメソッドにTransaction属性を
>>>>>> 付加してもトランザクションが実行されませんでした。
>>>>>>
>>>>>>
>>>>>>
>>>>>> 2番目のWebサービスを介さない場合ですが
>>>>>> (1)Windows Form (SampleFormクラス)
>>>>>>>>>>>> (3)BusinessLogic (SampleBusinessLogicImplクラス
>>>>>> (←ISampleBusinessLogicインターフェース)) ※トランザクション属性
>>>>>>>>>>>> (4)DAO Interface (IM_TESTdaoインターフェース)
>>>>>> の構成でもWebサービス経由と同様の結果でした。
>>>>>>
>>>>>> 何かお気づきの点があれば、ご返信をお願いいたします。
>>>>>>
>>>>>>
>>>>>>
>>>>>> (2010/07/06 7:27)
>>>>>>> 連投失礼します。
>>>>>>>
>>>>>>> ナガイシさん
>>>>>>>
>>>>>>> 小谷です。
>>>>>>>
>>>>>>> Webサービスを介さなかった場合も同様の結果になるでしょうか?
>>>>>>> 念のため試してみていただけないでしょうか。
>>>>>>>
>>>>>>> (1)Windows Form (SampleFormクラス)
>>>>>>>>>>>>>> (3)BusinessLogic (SampleBusinessLogicImplクラス(←ISampleBusinessLogicイ
>>>>>>> ンターフェース)) ※トランザクション属性
>>>>>>>>>>>>>> (4)DAO Interface (IM_TESTdaoインターフェース)
>>>>>>>
>>>>>>> 2010年7月6日6:59 koyak <[E-MAIL ADDRESS DELETED]>:
>>>>>>>
>>>>>>>> ナガイシさん
>>>>>>>>
>>>>>>>> 小谷です。
>>>>>>>>
>>>>>>>> ソースコードを拝見致しましたが、
>>>>>>>> メソッドへのトランザクション設定として、
>>>>>>>> 特に問題はないように思えます。
>>>>>>>>
>>>>>>>> 参考までに、ログがありましたら差し支えなければそちらも
>>>>>>>> 見せていただけないでしょうか。
>>>>>>>>
>>>>>>>> 2010年7月6日0:34 kircheis <[E-MAIL ADDRESS DELETED]>:
>>>>>>>>
>>>>>>>>> はじめまして、ナガイシと申します。
>>>>>>>>>
>>>>>>>>> 今、以下の環境でQuill + S2Dao.Netでスマートクライアント開発を
>>>>>>>>> 行うべく、サンプルを作成しています。
>>>>>>>>>
>>>>>>>>> 開発環境
>>>>>>>>> Windows XP SP3
>>>>>>>>> VisualBasic 2008 (.Net Framework3.5)
>>>>>>>>> S2Container.Net 1.3.17 (Quill)
>>>>>>>>> Oracle11.2.0.1
>>>>>>>>> ODP.NET 2.112.1.0
>>>>>>>>>
>>>>>>>>> サンプル構成
>>>>>>>>> (1)Windows Form (SampleFormクラス)
>>>>>>>>>>>>>>>>>> (2)ASP.NET XML Service (SampleWebServiceクラス)
>>>>>>>>>>>>>>>>>> (3)BusinessLogic (SampleBusinessLogicImplクラス(←ISampleBusinessLogicイ
>>>>>>>>> ンターフェース)) ※トランザクション属性
>>>>>>>>>>>>>>>>>> (4)DAO Interface (IM_TESTdaoインターフェース)
>>>>>>>>>
>>>>>>>>> BusinessLogicにDataInsert、DataUpdate、DataDeleteメソッドを作成し
>>>>>>>>> 各メソッドにTransaction属性をつけてメソッド単位のトランザクション処理を
>>>>>>>>> 行うべく作成を行いました。
>>>>>>>>> 各メソッドのコミット、ロールバックは正常に行われるのですが
>>>>>>>>> 例えば、DataInsertメソッドにのみTransaction属性を付加しても
>>>>>>>>> Transaction属性をつけていないDataUpdate、DataDeleteメソッドで
>>>>>>>>> コミット、ロールバックが発生してしまいます。
>>>>>>>>> (クラス全体にTransaction属性はなく、DaoにもTransaction属性はありません)
>>>>>>>>>
>>>>>>>>> DataInsertメソッドの流れの概略は以下の通りです。
>>>>>>>>> (1)より(2).DataInsertメソッドを呼出
>>>>>>>>>>>>>>>>>> (2).DataInsertメソッドより(3)のDataInsertメソッドを呼出
>>>>>>>>>>>>>>>>>> (3).DataInsertメソッドは(4)のInsertDataメソッドを呼出
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> 下記ソースの
>>>>>>>>> <<BusinessLogic>>
>>>>>>>>> →※クラス
>>>>>>>>> →Public Class SampleBusinessLogicImpl
>>>>>>>>> →<Transaction()>
>>>>>>>>> Public Overridable Function DataInsert(ByVal entity As M_TESTentity) 〜
>>>>>>>>> がTransaction属性の部分です。
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> 今回がスマートクライアントもSeasar.Netも初めてで
>>>>>>>>> 色々調べてみましたが、トランザクションがかからない現象は
>>>>>>>>> よく見かけるのですが、トランザクションの範囲が想定以上に
>>>>>>>>> なる現象は発見できませんでした。
>>>>>>>>>
>>>>>>>>> 下記にソースを記載しております。
>>>>>>>>> ソースが長く申し訳ありませんが
>>>>>>>>> 何かお気づきの事があればご助言頂きたいと考えております。
>>>>>>>>> よろしくお願いいたします。
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> <<Windows Form>>
>>>>>>>>> Public Class SampleForm
>>>>>>>>>
>>>>>>>>> Private Sub btnExec_Click(ByVal sender As System.Object, ByVal e As
>>>>>>>>> System.EventArgs) Handles btnExec.Click
>>>>>>>>>
>>>>>>>>> Dim _SampleWebService As New SampleWebService.SampleWebService
>>>>>>>>> Dim _entity As New SampleWebService.M_TESTentity
>>>>>>>>> Dim _entityList() As SampleWebService.M_TESTentity
>>>>>>>>>
>>>>>>>>> With _entity
>>>>>>>>> .Seqid = txtID.Text
>>>>>>>>> .Name = txtNAME.Text
>>>>>>>>> .Birth = CDate(dtpBirth.Value)
>>>>>>>>> .Biko = txtBIKO.Text
>>>>>>>>> End With
>>>>>>>>>
>>>>>>>>> Select Case True
>>>>>>>>> Case rdoInsert.Checked
>>>>>>>>> If _SampleWebService.DataInsert(_entity) Then
>>>>>>>>> MessageBox.Show("正常")
>>>>>>>>> Else
>>>>>>>>> MessageBox.Show("異常")
>>>>>>>>> End If
>>>>>>>>> Case rdoUpdate.Checked
>>>>>>>>> If _SampleWebService.DataUpdate(_entity) Then
>>>>>>>>> MessageBox.Show("正常")
>>>>>>>>> Else
>>>>>>>>> MessageBox.Show("異常")
>>>>>>>>> End If
>>>>>>>>> Case rdoDelete.Checked
>>>>>>>>> If _SampleWebService.DataDelete(_entity) Then
>>>>>>>>> MessageBox.Show("正常")
>>>>>>>>> Else
>>>>>>>>> MessageBox.Show("異常")
>>>>>>>>> End If
>>>>>>>>> End Select
>>>>>>>>> End Sub
>>>>>>>>>
>>>>>>>>> <<Web Service>>
>>>>>>>>> <System.Web.Services.WebService(Namespace:="http://tempuri.org/")> _
>>>>>>>>> <System.Web.Services.WebServiceBinding(ConformsTo:=WsiProfiles.BasicProfile1_1)>
>>>>>>>>> _
>>>>>>>>> <ToolboxItem(False)> _
>>>>>>>>> Public Class SampleWebService
>>>>>>>>> Inherits System.Web.Services.WebService
>>>>>>>>>
>>>>>>>>> Protected injector As QuillInjector = QuillInjector.GetInstance
>>>>>>>>> Protected SampleClass As ISampleBusinessLogic
>>>>>>>>>
>>>>>>>>> Public Sub New()
>>>>>>>>> injector.Inject(Me)
>>>>>>>>> End Sub
>>>>>>>>>
>>>>>>>>> <WebMethod()> _
>>>>>>>>> Public Function DataInsert(ByVal entity As M_TESTentity) As Boolean
>>>>>>>>> Return SampleClass.DataInsert(entity)
>>>>>>>>> End Function
>>>>>>>>>
>>>>>>>>> <WebMethod()> _
>>>>>>>>> Public Function DataUpdate(ByVal entity As M_TESTentity) As Boolean
>>>>>>>>> Return SampleClass.DataUpdate(entity)
>>>>>>>>> End Function
>>>>>>>>>
>>>>>>>>> <WebMethod()> _
>>>>>>>>> Public Function DataDelete(ByVal entity As M_TESTentity) As Boolean
>>>>>>>>> Return SampleClass.DataDelete(entity)
>>>>>>>>> End Function
>>>>>>>>> End Class
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> <<Web.config>>
>>>>>>>>> <quill>
>>>>>>>>> <dataSources>
>>>>>>>>> <dataSource name="ds">
>>>>>>>>> <provider>ODP</provider>
>>>>>>>>> <connectionString>"Data Source=ORA_SAMPLE;User
>>>>>>>>> ID=sampleuser;Password=samplepwd"</connectionString>
>>>>>>>>> <class>Seasar.Extension.Tx.Impl.TxDataSource</class>
>>>>>>>>> </dataSource>
>>>>>>>>> </dataSources>
>>>>>>>>>
>>>>>>>>> <assemblys>
>>>>>>>>> <assembly>Seasar</assembly>
>>>>>>>>> <assembly>Seasar.Dao</assembly>
>>>>>>>>> <!-- Oracle Data Provider for .NET を使用する場合に必要です。 -->
>>>>>>>>> <assembly>Oracle.DataAccess, version=2.112.1.0, Culture=neutral,
>>>>>>>>> PublicKeyToken=89b483f429c47342</assembly>
>>>>>>>>> <!--<assembly>SampleBusinessLogic</assembly>-->
>>>>>>>>> </assemblys>
>>>>>>>>> </quill>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> <<BusinessLogic>>
>>>>>>>>> ※インターフェース
>>>>>>>>> <Implementation(GetType(SampleBusinessLogicImpl))> _
>>>>>>>>> Public Interface ISampleBusinessLogic
>>>>>>>>> Function DataInsert(ByVal entity As M_TESTentity) As Boolean
>>>>>>>>> Function DataUpdate(ByVal entity As M_TESTentity) As Boolean
>>>>>>>>> Function DataDelete(ByVal entity As M_TESTentity) As Boolean
>>>>>>>>> End Interface
>>>>>>>>>
>>>>>>>>> ※クラス
>>>>>>>>> Public Class SampleBusinessLogicImpl
>>>>>>>>> Implements ISampleBusinessLogic
>>>>>>>>>
>>>>>>>>> Protected daoObject As IM_TESTdao
>>>>>>>>> <Transaction()>
>>>>>>>>> Public Overridable Function DataInsert(ByVal entity As M_TESTentity) As
>>>>>>>>> Boolean Implements ISampleBusinessLogic.DataInsert
>>>>>>>>> Dim intResult As Integer
>>>>>>>>> intResult = daoObject.InsertData(entity)
>>>>>>>>> Return True
>>>>>>>>> End Function
>>>>>>>>>
>>>>>>>>> Public Function DataUpdate(ByVal entity As M_TESTentity) As Boolean
>>>>>>>>> Implements ISampleBusinessLogic.DataUpdate
>>>>>>>>> Dim intResult As Integer
>>>>>>>>> intResult = daoObject.UpdateData(entity)
>>>>>>>>> Return True
>>>>>>>>> End Function
>>>>>>>>>
>>>>>>>>> Public Function DataDelete(ByVal entity As M_TESTentity) As Boolean
>>>>>>>>> Implements ISampleBusinessLogic.DataDelete
>>>>>>>>> Dim intResult As Integer
>>>>>>>>> intResult = daoObject.DeleteData(entity)
>>>>>>>>> Return True
>>>>>>>>> End Function
>>>>>>>>> End Class
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> <<Dao Interface>>
>>>>>>>>> ※インターフェース
>>>>>>>>> <Implementation()> _
>>>>>>>>> <S2Dao()> _
>>>>>>>>> <Bean(GetType(M_TESTentity))> _
>>>>>>>>> Public Interface IM_TESTdao
>>>>>>>>> Inherits AbstractBaseDao
>>>>>>>>>
>>>>>>>>> Function InsertData(ByVal data As M_TESTentity) As Integer
>>>>>>>>> Function UpdateData(ByVal data As M_TESTentity) As Integer
>>>>>>>>> Function DeleteData(ByVal data As M_TESTentity) As Integer
>>>>>>>>> End Interface
>>>>>>>>>
>>>>>>>>> ※エンティティクラス
>>>>>>>>> <Table("M_TEST")> _
>>>>>>>>> Public Class M_TESTentity
>>>>>>>>> Inherits AbstractBaseEntity
>>>>>>>>>
>>>>>>>>> Private _seqid As String
>>>>>>>>> Private _name As String
>>>>>>>>> Private _birth As Nullable(Of Date)
>>>>>>>>> Private _biko As String
>>>>>>>>>
>>>>>>>>> Public Sub New()
>>>>>>>>> _seqid = ""
>>>>>>>>> _name = ""
>>>>>>>>> _biko = ""
>>>>>>>>> End Sub
>>>>>>>>>
>>>>>>>>> <Column("SEQID")> _
>>>>>>>>> Public Property Seqid() As String
>>>>>>>>> Get
>>>>>>>>> Return _seqid.PadRight(5, " ") 'PrimaryKeyがChar型の場合、桁数に合わせて
>>>>>>>>> 空白を付加しないと自動作成SQLと連動できない
>>>>>>>>> End Get
>>>>>>>>> Set(ByVal value As String)
>>>>>>>>> _seqid = value
>>>>>>>>> End Set
>>>>>>>>> End Property
>>>>>>>>>
>>>>>>>>> <Column("NAME")> _
>>>>>>>>> Public Property Name() As String
>>>>>>>>> Get
>>>>>>>>> Return _name
>>>>>>>>> End Get
>>>>>>>>> Set(ByVal value As String)
>>>>>>>>> _name = value
>>>>>>>>> End Set
>>>>>>>>> End Property
>>>>>>>>>
>>>>>>>>> <Column("BIRTH")> _
>>>>>>>>> Public Property Birth() As Date
>>>>>>>>> Get
>>>>>>>>> Return _birth
>>>>>>>>> End Get
>>>>>>>>> Set(ByVal value As Date)
>>>>>>>>> _birth = value
>>>>>>>>> End Set
>>>>>>>>> End Property
>>>>>>>>>
>>>>>>>>> <Column("BIKO")> _
>>>>>>>>> Public Property Biko() As String
>>>>>>>>> Get
>>>>>>>>> Return _biko
>>>>>>>>> End Get
>>>>>>>>> Set(ByVal value As String)
>>>>>>>>> _biko = value
>>>>>>>>> End Set
>>>>>>>>> End Property
>>>>>>>>>
>>>>>>>>> End Class
>>>>>>>>>
>>>>>>>>> _______________________________________________
>>>>>>>>> seasar-dotnet mailing list
>>>>>>>>> [E-MAIL ADDRESS DELETED]
>>>>>>>>> https://ml.seasar.org/mailman/listinfo/seasar-dotnet
>>>>>>>>>
>>>>>>>>>
>>>>>>>>
>>>>>>> _______________________________________________
>>>>>>> seasar-dotnet mailing list
>>>>>>> [E-MAIL ADDRESS DELETED]
>>>>>>> https://ml.seasar.org/mailman/listinfo/seasar-dotnet
>>>>>>>
>>>>>>>
>>>>>>
>>>>>> _______________________________________________
>>>>>> seasar-dotnet mailing list
>>>>>> [E-MAIL ADDRESS DELETED]
>>>>>> https://ml.seasar.org/mailman/listinfo/seasar-dotnet
>>>>>>
>>>>>
>>>>
>>>> _______________________________________________
>>>> seasar-dotnet mailing list
>>>> [E-MAIL ADDRESS DELETED]
>>>> https://ml.seasar.org/mailman/listinfo/seasar-dotnet
>>>>
>>>_______________________________________________
>>>seasar-dotnet mailing list
>>>[E-MAIL ADDRESS DELETED]
>>>https://ml.seasar.org/mailman/listinfo/seasar-dotnet
>> _______________________________________________
>> seasar-dotnet mailing list
>> [E-MAIL ADDRESS DELETED]
>> https://ml.seasar.org/mailman/listinfo/seasar-dotnet
>>
>_______________________________________________
>seasar-dotnet mailing list
>[E-MAIL ADDRESS DELETED]
>https://ml.seasar.org/mailman/listinfo/seasar-dotnet


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