Guest User

George Mauer

a guest
Feb 19th, 2009
140
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 2.99 KB | None | 0 0
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using NHibernate;
  6. using FluentNHibernate.Cfg;
  7. using FluentNHibernate.Cfg.Db;
  8. using NHibernate.Dialect;
  9. using NHibernate.Driver;
  10.  
  11. namespace EDC2.DAL.FluentNHibernate {
  12.  
  13.  
  14.     public class OracleConfiguration : PersistenceConfiguration<OracleConfiguration> {
  15.         /// <summary>
  16.         /// Initializes a new instance of the <see cref="OracleConfiguration"/> class using the
  17.         /// Oracle Data Provider (Oracle.DataAccess) library.
  18.         /// Initially from: http://tiredblogger.wordpress.com/2008/12/04/persistanceconfiguration-for-oraclefluent-nhibernate/
  19.         /// Further modified by George Mauer <gmauer ~at~ gmail>
  20.         /// </summary>
  21.         protected OracleConfiguration() {
  22.             Driver<OracleDataClientDriver>();
  23.         }
  24.  
  25.         public static OracleConfiguration Oracle9 {
  26.             get { return new OracleConfiguration().Dialect<Oracle9Dialect>(); }
  27.         }
  28.  
  29.         public new OracleConnectionStringExpression ConnectionString {
  30.             get {
  31.                 return new OracleConnectionStringExpression(this);
  32.             }
  33.         }
  34.  
  35.         public class OracleConnectionStringExpression {
  36.             private string _server;
  37.             private string _instance;
  38.             private string _username;
  39.             private string _password;
  40.             private int _port;
  41.             private OracleConfiguration _config;
  42.             private string _otherOptions;
  43.  
  44.             public OracleConnectionStringExpression(OracleConfiguration config) {
  45.                 _config = config;
  46.             }
  47.  
  48.             public OracleConnectionStringExpression Server(string server) {
  49.                 _server = server;
  50.                 return this;
  51.             }
  52.  
  53.             public OracleConnectionStringExpression Instance(string instance) {
  54.                 _instance = instance;
  55.                 return this;
  56.             }
  57.  
  58.             public OracleConnectionStringExpression Username(string username) {
  59.                 _username = username;
  60.                 return this;
  61.             }
  62.  
  63.             public OracleConnectionStringExpression Password(string password) {
  64.                 _password = password;
  65.                 return this;
  66.             }
  67.  
  68.             public OracleConnectionStringExpression Port(int port) {
  69.                 _port = port;
  70.                 return this;
  71.             }
  72.  
  73.             public OracleConnectionStringExpression OtherOptions(string otherOptions) {
  74.                 _otherOptions = otherOptions;
  75.                 return this;
  76.             }
  77.  
  78.             public OracleConfiguration Create {
  79.                 get {
  80.                     var builder = new OracleConnectionStringBuilder {
  81.                         Server = _server,
  82.                         Instance = _instance,
  83.                         Port = _port,
  84.                         UserID = _username,
  85.                         Password = _password
  86.                     };
  87.  
  88.                     return _config.Raw(ConnectionStringKey, builder.ToString());
  89.                 }
  90.             }
  91.         }
  92.  
  93.         internal class OracleConnectionStringBuilder {
  94.             public string Server;
  95.             public string Instance;
  96.             public int Port;
  97.             public string UserID;
  98.             public string Password;
  99.             public string OtherOptions;
  100.  
  101.             public override string ToString() {
  102.                 return
  103.                     string.Format(
  104.                         @"  User Id={0};Password={1};{5}
  105.                        Data Source=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST={2})(PORT={3})))(CONNECT_DATA=(SERVICE_NAME={4})))", UserID, Password, Server, Port, Instance, OtherOptions);
  106.             }
  107.         }
  108.     }
  109. }
  110.  
Advertisement
Add Comment
Please, Sign In to add comment