1 using System;
2 using System.Collections.Generic;
3 using System.Linq;
4 using System.Text;
5 using System.Windows;
6 using System.Windows.Controls;
7 using System.Windows.Data;
8 using System.Windows.Documents;
9 using System.Windows.Input;
10 using System.Windows.Media;
11 using System.Windows.Media.Imaging;
12 using System.Windows.Navigation;
13 using System.Windows.Shapes;
14 //
15 using FluentNHibernate.Cfg;
16 using FluentNHibernate.Cfg.Db;
17 using NHibernate;
18 using NHibernate.Cfg;
19 using NHibernate.Tool.hbm2ddl;
20 using NHibernate.Linq;
21
22 namespace ProductInventory
23 {
24 /// <summary>
25 /// MainWindow.xaml 的交互逻辑
26 /// </summary>
27 public partial class MainWindow : Window
28 {
29 public MainWindow()
30 {
31 InitializeComponent();
32 }
33 /// <summary>
34 /// 数据库连接字符串
35 /// </summary>
36 const String connectionString = "server=(local);database=NHiberate3;Integrated Security=SSPI;";
37
38 #region ======创建数据库表======
39 private void btnCreateDatabase_Click(object sender, RoutedEventArgs e)
40 {
41 Fluently.Configure().Database(MsSqlConfiguration.MsSql2008.ConnectionString(connectionString))
42 .Mappings(m=>m.FluentMappings.AddFromAssemblyOf<ProductMap>())
43 .ExposeConfiguration(CreateSchema)
44 .BuildConfiguration();
45 }
46
47 private static void CreateSchema(Configuration cfg)
48 {
49 var schemaExport = new SchemaExport(cfg);
50 schemaExport.Drop(false, true);
51 schemaExport.Create(false, true);
52 }
53 #endregion ======创建数据库表======
54
55 #region ======创建会话工厂======
56
57 private void btnCreateSessionFactory_Click(object sender, RoutedEventArgs e)
58 {
59 var factory = CreateSessionFactory();
60 }
61
62 private ISessionFactory CreateSessionFactory()
63 {
64 return Fluently.Configure().Database(MsSqlConfiguration.MsSql2008.ConnectionString(connectionString))
65 .Mappings(m => m.FluentMappings.AddFromAssemblyOf<ProductMap>()).BuildSessionFactory();
66 }
67
68 #endregion ======创建会话工厂======
69
70 #region ======创建会话======
71 private void btnCreateSession_Click(object sender, RoutedEventArgs e)
72 {
73 var factory = CreateSessionFactory();
74 using (var session = factory.OpenSession())
75 {
76
77 }
78 }
79 #endregion ======创建会话======
80
81 #region ======保存数据======
82 private void btnAddCategory_Click(object sender, RoutedEventArgs e)
83 {
84 var factory = CreateSessionFactory();
85 using (var session = factory.OpenSession())
86 {
87 var category = new Category
88 {
89 Name = txtCategoryName.Text,
90 Description = txtCategoryDescription.Text
91 };
92 session.Save(category);
93 }
94 }
95 #endregion ======保存数据======
96
97 #region ======查看数据======
98 private void btnLoadCategories_Click(object sender, RoutedEventArgs e)
99 {
100 var factory = CreateSessionFactory();
101 using (var session = factory.OpenSession())
102 {
103 var categories = session.Query<Category>()
104 .OrderBy(c => c.Name)
105 .ToList();
106 lstCategories.ItemsSource = categories;
107 lstCategories.DisplayMemberPath = "Name";
108 }
109 }
110 #endregion ======查看数据======
111 }
112 }