2009-12-19 13 views
8

के लिए कोई सिफारिशों किसी को भी एक SQLite सी # ORM कोड पीढ़ी उपकरण की सिफारिश कर सकते हैं।SQLite सी # ORM कोड पीढ़ी

मैं Habanero ढांचे, उस पर कोई टिप्पणी पाया है?

धन्यवाद

अद्यतन

मैं इस उदाहरण में सबसोनिक साथ चले गए हैं। किसी और की मदद करने के लिए, यहां कक्षा बनाने और सबसनिक और स्क्लाइट का उपयोग करने का एक 'मूल' उदाहरण है।

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Text; 
using System.Windows.Forms; 
using System.Data.SQLite; 
using SubSonic; 
using SubSonic.Schema; 
using SubSonic.Repository; 
using SubSonic.DataProviders; 

namespace SubsonicSqliteTest 
{ 
    public class User 
    { 
     public User() 
     { 
      ID = Guid.NewGuid(); 

      // Set Defaults 
      FirstName = String.Empty; 
      LastName = String.Empty; 
      Username = String.Empty; 
      Password = String.Empty; 
      IsAdministrator = 0; 
     } 

     public Guid ID { get; set; } 
     public string FirstName { get; set; } 
     public string LastName { get; set; } 
     public string Username { get; set; } 
     public string Password { get; set; } 
     public int IsAdministrator { get; set; } 
     public DateTime? CreatedDate { get; set; } 
     public DateTime? LastUpdatedDate { get; set; } 

     public static User Get(Guid id) 
     { 
      string databasePath = System.IO.Path.Combine(System.IO.Path.GetDirectoryName(Application.ExecutablePath), "Database.db"); 
      IDataProvider provider = ProviderFactory.GetProvider("Data Source=" + databasePath + ";Version=3;New=True;Pooling=True;Max Pool Size=1;", "System.Data.SQLite"); 
      var repository = new SimpleRepository(provider, SimpleRepositoryOptions.RunMigrations); 
      var users = from user in repository.All<User>() 
         where user.ID == id 
         select user; 

      foreach (var user in users) 
      { 
       return user; 
      } 

      return null; 
     } 

     public User Save() 
     { 
      string databasePath = System.IO.Path.Combine(System.IO.Path.GetDirectoryName(Application.ExecutablePath), "Database.db"); 
      IDataProvider provider = ProviderFactory.GetProvider("Data Source=" + databasePath + ";Version=3;New=True;Pooling=True;Max Pool Size=1;", "System.Data.SQLite"); 
      var repository = new SimpleRepository(provider, SimpleRepositoryOptions.RunMigrations); 
      repository.Add(this); 
      return this; 
     } 
    } 
} 
+0

Habanero इस मामले में मेरी आवश्यकताओं के लिए बहुत बड़ा लग रहा है उत्पन्न एक बहुत शक्तिशाली ORM है। हमारे पास अपना खुद का ढांचा है जो बहुत भारी वजन भी है और वास्तव में इसे इस उदाहरण में बदल रहा है। –

उत्तर

2

दूसरों को पहले से ही NHibernate (विशेष रूप से Fluent NHibernate के साथ) और ADO.Net इकाई की रूपरेखा जो दोनों महान हैं के बारे में पोस्ट किया है। आप SubSonic पर भी देखना चाह सकते हैं। यदि आप SQLite पर विचार कर रहे हैं तो आपकी डेटाबेस आवश्यकताएं काफी सरल होनी चाहिए और SubSonic's SimpleRepository option उपयोग करने में बहुत आसान है।

+0

हां, मेरी आवश्यकताएं सरल हैं, केवल बहुत हल्के डेटास्टोर की आवश्यकता है और इसके बजाय पहुंच से स्क्लाइट का प्रयास करें। –

+0

सबसोनिक सरल रिपोजिटरी छोटे ऐप्स और त्वरित प्रमाण-अवधारणाओं के लिए बहुत अच्छी लगती है! किसी SimpleRepository को Sqlite DataProvider से कनेक्ट करने या SQLite कनेक्शन स्ट्रिंग को कॉन्फ़िगर करने के तरीके के बारे में कोई विचार है? –

+0

मैं मदद के लिए धन्यवाद, सबसनिक SimpleRepository के साथ जाने जा रहा हूँ। (मैंने एक मूल वर्ग शामिल किया है जो प्रश्न में स्क्लाइट और सबसनिक का प्रदर्शन करता है) –

0

http://en.wikipedia.org/wiki/NHibernate

http://en.wikipedia.org/wiki/ADO.NET_Entity_Framework

आप भी एसक्यूएल जादू करने के लिए LINQ का उपयोग कर सकते

+1

मुझे पूरा यकीन है कि "LINQ से SQL जादू चीज़" केवल SQL सर्वर के साथ काम करता है। – itowlson

+0

im नहीं ... लेकिन यह किसी भी तरह बेकार है ... इससे मदद मिलती है? http://sqlite.phxsoftware.com/ –

+0

LINQ से SQL केवल MSSQL सर्वर के लिए है। लेकिन, एंटिटी फ्रेमवर्क आपको एक मजबूत LINQ प्रदाता देता है ताकि आप मूल रूप से वही सामान कर सकें। –

2

अगर यह होता है आप के लिए क्या चाहिए, तो मैं नहीं जानता कि thingy; क्या आपने इसे पहले ही देखा है?

http://sqlite.phxsoftware.com/

आप ADO.NET 2.0 या ADO.NET 3.5 इकाई की रूपरेखा के साथ उपयोग कर सकते हैं।

+0

यह भी अच्छा लगता है, बस सबसोनिक को कनेक्ट करने का प्रयास कर रहा है ... –

+1

धन्यवाद, लेकिन लिंक मर चुका है –

3

कई .NET ऑब्जेक्ट-संबंधपरक मानचित्रकारों SQLite समर्थन करते हैं। this question .NET ORMs की एक सूची देखें: वहां वर्णित लोगों में से, मुझे पता है कि और LightSpeed SQLite का समर्थन करता है, जैसा कि एंटीटी फ्रेमवर्क eWolf's answer में उल्लिखित प्रदाता के माध्यम से करता है। मैं दूसरों के बारे में निश्चित नहीं हूँ।

कोड जनरेशन, लाइटस्पीड और इकाई फ्रेमवर्क (System.Data.SQLite के माध्यम से) के संदर्भ में मौजूदा SQLite डेटाबेस स्कीमा आयात करने के लिए टूल शामिल हैं; मैं NHibernate के बारे में निश्चित नहीं हूँ। (प्रकटीकरण:! मैं कंपनी है कि Lightspeed बनाता है के लिए काम, हालांकि इस सवाल का जवाब तथ्यात्मक रखने की कोशिश कर)

संबंधित मुद्दे