えムナウ Blog

えムナウ の なすがまま

目次

Blog 利用状況

ニュース


follow mnow at http://twitter.com


えムナウのプログラミングのページ

INETAJ

書庫

日記カテゴリ

ギャラリ

2010年2月25日 #

Dataset のクラスを T4 で作る

こんなプロジェクトを作る。

project2

DataSet を別DLLで用意する。
今回は Northwnd サンプルデータベースの Employees を利用する。

注意点は決して同時にビルドをしないように「ビルド-構成マネージャ」で設定しモデルを先にビルドしておく。
Manager

classbody.txt

namespace    <#= namespacename #>
{
    public class <#= table.TableName #> {
<# for (int i = 0; i < table.Columns.Count; i++) { #>
        private    <#= table.Columns[i].DataType.FullName #> _<#= table.Columns[i].ColumnName #> ;
        public    <#= table.Columns[i].DataType.FullName #> <#= table.Columns[i].ColumnName #>
        {
            get
            {
                return _<#= table.Columns[i].ColumnName #> ;
            }
            set
            {
                _<#= table.Columns[i].ColumnName #> = value ;
            }
        }
<# } #>
    }
}

T4DataSet.tt

<#@ template language="C#v3.5" debug="true" #>
<#@ output extension="cs" encoding="utf-8" #>
<#@ assembly name="System.Xml.dll" #>
<#@ import namespace="System.Xml" #>
<#@ assembly name="System.Data.DataSetExtensions.dll" #>
<#@ import namespace="System.Data.DataSetExtensions" #>
<#@ assembly name="System.Data.dll" #>
<#@ import namespace="System.Data" #>
<#@ assembly name="C:\Users\hkodama\Documents\Visual Studio 2008\Projects\T4DbTest\T4DbModel\bin\Debug\T4DbModel.dll" #>
<#@ import namespace="T4DbModel" #>
<#@ include file="Templates/classbody.txt" #>
<#+
    string namespacename = "T4DbTest";
    NorthwndDataSet.EmployeesDataTable table = new NorthwndDataSet.EmployeesDataTable();
#>

T4DbModel.dll をフルパスで入れなければいけないのが難点。
また、T4DbModel.dllを使っているので同時にビルドもできない。

そうすると T4DataSet.cs にこんなソースが出来る。
MVVM の VM も簡単に作れる。

namespace    T4DbTest
{
    public class Employees {
        private    System.Int32 _EmployeeID ;
        public    System.Int32 EmployeeID
        {
            get
            {
                return _EmployeeID ;
            }
            set
            {
                _EmployeeID = value ;
            }
        }
        private    System.String _LastName ;
        public    System.String LastName
        {
            get
            {
                return _LastName ;
            }
            set
            {
                _LastName = value ;
            }
        }
        private    System.String _FirstName ;
        public    System.String FirstName
        {
            get
            {
                return _FirstName ;
            }
            set
            {
                _FirstName = value ;
            }
        }
        private    System.String _Title ;
        public    System.String Title
        {
            get
            {
                return _Title ;
            }
            set
            {
                _Title = value ;
            }
        }
        private    System.String _TitleOfCourtesy ;
        public    System.String TitleOfCourtesy
        {
            get
            {
                return _TitleOfCourtesy ;
            }
            set
            {
                _TitleOfCourtesy = value ;
            }
        }
        private    System.DateTime _BirthDate ;
        public    System.DateTime BirthDate
        {
            get
            {
                return _BirthDate ;
            }
            set
            {
                _BirthDate = value ;
            }
        }
        private    System.DateTime _HireDate ;
        public    System.DateTime HireDate
        {
            get
            {
                return _HireDate ;
            }
            set
            {
                _HireDate = value ;
            }
        }
        private    System.String _Address ;
        public    System.String Address
        {
            get
            {
                return _Address ;
            }
            set
            {
                _Address = value ;
            }
        }
        private    System.String _City ;
        public    System.String City
        {
            get
            {
                return _City ;
            }
            set
            {
                _City = value ;
            }
        }
        private    System.String _Region ;
        public    System.String Region
        {
            get
            {
                return _Region ;
            }
            set
            {
                _Region = value ;
            }
        }
        private    System.String _PostalCode ;
        public    System.String PostalCode
        {
            get
            {
                return _PostalCode ;
            }
            set
            {
                _PostalCode = value ;
            }
        }
        private    System.String _Country ;
        public    System.String Country
        {
            get
            {
                return _Country ;
            }
            set
            {
                _Country = value ;
            }
        }
        private    System.String _HomePhone ;
        public    System.String HomePhone
        {
            get
            {
                return _HomePhone ;
            }
            set
            {
                _HomePhone = value ;
            }
        }
        private    System.String _Extension ;
        public    System.String Extension
        {
            get
            {
                return _Extension ;
            }
            set
            {
                _Extension = value ;
            }
        }
        private    System.Byte[] _Photo ;
        public    System.Byte[] Photo
        {
            get
            {
                return _Photo ;
            }
            set
            {
                _Photo = value ;
            }
        }
        private    System.String _Notes ;
        public    System.String Notes
        {
            get
            {
                return _Notes ;
            }
            set
            {
                _Notes = value ;
            }
        }
        private    System.Int32 _ReportsTo ;
        public    System.Int32 ReportsTo
        {
            get
            {
                return _ReportsTo ;
            }
            set
            {
                _ReportsTo = value ;
            }
        }
        private    System.String _PhotoPath ;
        public    System.String PhotoPath
        {
            get
            {
                return _PhotoPath ;
            }
            set
            {
                _PhotoPath = value ;
            }
        }
    }
}

posted @ 22:19 | Feedback (1)