프로젝트

일반

사용자정보

통계
| 브랜치(Branch): | 개정판:

markus / MarkusLogview / MarkusDataModel / Common / ConnectStringBuilder.cs @ 84578b97

이력 | 보기 | 이력해설 | 다운로드 (5.19 KB)

1
using System;
2
using System.Collections.Generic;
3
using System.Data.EntityClient;
4
using System.Data.SqlClient;
5
using System.Linq;
6
using System.Text;
7

    
8
namespace MarkusDataModel.Common
9
{
10
    public class ConnectStringBuilder
11
    {
12

    
13

    
14
        private const string InitialCatalogString = "InitialCatalog";
15
        private const string providerName = "System.Data.SqlClient";
16

    
17
        //private const string providerName = "MS.Data.MySqlClient"; //MYSQL 일때 사용
18
        //private const string MEMBERMeta = @"res://*/DataModel.MEMBERModel.csdl|res://*/DataModel.MEMBERModel.ssdl|res://*/DataModel.MEMBERModel.msl;";
19

    
20
        // 개발용 테스트 ( DevMarkusModel ) 
21
        private const string MarkusMeta = @"res://*/DataModel.CloudMarkusModel.csdl|res://*/DataModel.CloudMarkusModel.ssdl|res://*/DataModel.CloudMarkusModel.msl";
22
        private const string MarkusCIMeta = @"res://*/DataModel.CloudMarkusCIModel.csdl|res://*/DataModel.CloudMarkusCIModel.ssdl|res://*/DataModel.CloudMarkusCIModel.msl";
23
        private const string MarkusEntitiesMeta = @"res://*/DataModel.markusEntities.csdl|res://*/DataModel.markusEntities.ssdl|res://*/DataModel.markusEntities.msl";
24
        //private const string MarkusEntitiesMeta = @"res://*/DataModel.HyosungMarkusEntities.csdl|res://*/DataModel.HyosungMarkusEntities.ssdl|res://*/DataModel.HyosungMarkusEntities.msl";
25

    
26

    
27
        // 클라우드 ( MarkusModel ) 
28
        //private const string MarkusMeta = @"res://*/DataModel.MarkusModel.csdl|res://*/DataModel.DevMarkusModel.ssdl|res://*/DataModel.DevMarkusModel.msl;";
29
        //private const string MarkusCIMeta = @"res://*/DataModel.MarkusCIModel.csdl|res://*/DataModel.DevMarkusCIModel.ssdl|res://*/DataModel.DevMarkusCIModel.msl;";
30
        public static EntityConnectionStringBuilder MarkusConnectionString()
31
        {
32
            SqlConnectionStringBuilder _bl = new SqlConnectionStringBuilder(string.Format(Properties.Settings.Default.ProjectConnectionString, "markus"));
33
            return EntityConnectionStringBuilder(_bl, MarkusMeta);
34
        }
35
        //public static EntityConnectionStringBuilder ProjectCIConnectString(string ProjectNo)
36
        //{
37
        //    return CIConnectionStringBuilder(Properties.Settings.Default.ProjectConnectionString, ProjectNo, MarkusCIMeta);
38
        //}
39
        public static EntityConnectionStringBuilder MarkusEntitiesConnectionString()
40
        {
41
            SqlConnectionStringBuilder _bl = new SqlConnectionStringBuilder(string.Format(Properties.Settings.Default.ProjectConnectionString, "markus"));
42
            return EntityConnectionStringBuilder(_bl, MarkusEntitiesMeta);
43
        }
44

    
45

    
46
        // 현재는 안쓰임 
47
        //public static EntityConnectionStringBuilder MEMBERConnectString()
48
        //{
49
        //    SqlConnectionStringBuilder _bl = new SqlConnectionStringBuilder(string.Format(Properties.Settings.Default.ProjectConnectionString, "markus"));
50
        //    return EntityConnectionStringBuilder(_bl, MEMBERMeta);
51
        //}
52

    
53
        //private static EntityConnectionStringBuilder CIConnectionStringBuilder(string adoConnectionString, string ProjectNo, string Metadata)
54
        //{
55
        //    try
56
        //    {
57
        //        SqlConnectionStringBuilder bl = new SqlConnectionStringBuilder(string.Format(Properties.Settings.Default.ProjectConnectionString, "markus"));
58

    
59
        //        using (DataModel.CloudMarkusEntities entity
60
        //            = new DataModel.CloudMarkusEntities(EntityConnectionStringBuilder(bl, MarkusMeta).ToString()))
61
        //        {
62
        //            var _catalog = entity.PROPERTIES.Where(property => property.TYPE == InitialCatalogString && property.PROPERTY == ProjectNo);
63
        //            EntityConnectionStringBuilder builder = null;
64
        //            if (_catalog.Count() > 0)
65
        //            {
66
        //                string _ConnectionString = string.Format(adoConnectionString, _catalog.First().VALUE);
67
        //                SqlConnectionStringBuilder sqlBuilder = new SqlConnectionStringBuilder(_ConnectionString);
68

    
69
        //                builder = ConnectStringBuilder.EntityConnectionStringBuilder(sqlBuilder, Metadata);
70
        //            }
71

    
72
        //            return builder;
73
        //        }
74
        //    }
75
        //    catch (Exception ex)
76
        //    {
77
        //        System.Diagnostics.Debug.WriteLine(ex.ToString());
78
        //    }
79

    
80
        //    return null;
81
        //}
82

    
83
        private static EntityConnectionStringBuilder EntityConnectionStringBuilder(SqlConnectionStringBuilder SqlStringBuilder, string EntityMetaData)
84
        {
85
            string providerString = SqlStringBuilder.ToString();
86

    
87
            EntityConnectionStringBuilder entityBuilder = new EntityConnectionStringBuilder();
88

    
89
            entityBuilder.Provider = providerName;
90
            entityBuilder.ProviderConnectionString = providerString;
91
            entityBuilder.Metadata = EntityMetaData;
92
            Console.WriteLine(entityBuilder.ToString());
93

    
94
            using (EntityConnection conn =
95
                new EntityConnection(entityBuilder.ToString()))
96
            {
97
                conn.Open();
98
                Console.WriteLine("Just testing the connection.");
99
                conn.Close();
100
            }
101

    
102
            return entityBuilder;
103
        }
104

    
105
    }
106
}
클립보드 이미지 추가 (최대 크기: 500 MB)