「Fluent NHibernate/オートマッピング」の版間の差分
ナビゲーションに移動
検索に移動
imported>Administrator (ページの作成:「Fluent NHibernateには'''オートマッピング'''(auto mappings)という、プログラマが書いたエンティティ(クラス)から自動的に...」) |
imported>Administrator |
||
49行目: | 49行目: | ||
== 関連項目 == | == 関連項目 == | ||
* [[Fluent NHibernate]] | * [[Fluent NHibernate]] | ||
− | + | * [[Fluent NHibernate/フルーエントマッピング]] | |
== 参考文献 == | == 参考文献 == | ||
− | < | + | <references/> |
== 外部リンク == | == 外部リンク == | ||
{{stub}} | {{stub}} |
2012年7月8日 (日) 05:38時点における最新版
Fluent NHibernateにはオートマッピング(auto mappings)という、プログラマが書いたエンティティ(クラス)から自動的にリレーショナルデータベース上にテーブルなどを生成する機能がある。
使用例[編集 | ソースを編集]
まず、以下のようなエンティティクラスを記述する。
public class Product
{
public virtual int Id { get; set; }
public virtual string Name { get; set; }
public virtual decimal Price { get; set; }
}
public class Shelf
{
public virtual int Id { get; set; }
public virtual IList<Product> Products { get; set; }
public Shelf()
{
Products = new List<Product>();
}
}
Fluent NHibernateの接続設定の中にオートマッピングに関する記述をし、プログラムを実行すると、データベースへの初回接続時にクラスに対応するテーブルなどを自動生成しようと試みる。何かしらの理由で生成に失敗した場合は例外が発生する。
using FluentNHibernate;
using FluentNHibernate.Cfg;
using FluentNHibernate.Cfg.Db;
using FluentNHibernate.Automapping;
using NHibernate;
using NHibernate.Tool.hbm2ddl;
public class SampleApp
{
public void Main(string[] args)
{
// MySQLの場合
var fnConfig = Fluently.Configure()
.Database(/* 接続設定 */)
.Mappings(map =>
map.AutoMappings.Add(AutoMap.AssemblyOf<Product>()) // これがオートマッピングの指定。Productクラスと愉快な仲間たちが自動的マッピングされる。
)
;
var factory = fnConfig.BuildSessionFactory();
}
関連項目[編集 | ソースを編集]
参考文献[編集 | ソースを編集]