Aracılığıyla paylaş


İzlenecek yol: F# türleriyle dbml dosyasından (F#) oluşturma

Bu F# 3.0 için izlenecek yol şema bilgisine bir .dbml dosyası içinde kodlanmış bir şekilde sahipken nasıl bir veritabanındaki veriler için türler oluşturacağınızı açıklar. LINQ to SQL veritabanı şeması temsil etmek için bu dosya biçimini kullanır. Nesne İlişkisel (O/R) Tasarımcısı'nı kullanarak Visual Studio içinde bir LINQ to SQL şema dosyası üretebilirsiniz. Daha fazla bilgi için, bkz. O/R Designer Overview ve Code Generation in LINQ to SQL.

Veritabanı Biçimlendirme Dili (DBML) tür sağlayıcısı derleme zamanında statik bir bağlantı dizesi sağlamanızı gerektirmeden bir veritabanı şemasını temel alan türleri kullanan kod yazmanıza olanak sağlar. Bu eğer son uygulamanın uygulamayı geliştiriyorken kullandığınızdan farklı bir veritabanı, farklı kimlikler, ya da farklı bir bağlantı dizesi kullanması olasılığına izin vermeniz gerekiyorsa yararlı olabilir. Eğer derleme zamanında kullanabileceğiniz doğrudan bir veritabanı bağlantınız varsa ve bu sonunda derlenmiş uygulamanızda kullanacağınız aynı veritabanı ve kimliklerse, ayrıca SQLDataConnection tür sağlayıcısı da kullanabilirsiniz. Daha fazla bilgi için bkz. İzlenecek yol: tipi sağlayıcıları (F#) kullanarak bir sql veritabanına erişme.

Bu izlenecek yol aşağıdaki görevleri gösterir. İzlenecek yolun başarılı olması için bu sırada tamamlanmalıdır:

  • Bir .dbml dosyası oluşturma

  • Bir F# projesi oluşturma ve ayarlama

  • Tür sağlayıcısını yapılandırma

  • Veritabanını sorgulama

Bir .dbml dosyası oluşturma

Eğer üzerinde sınamak için bir veritabanınız yok ise, İzlenecek yol: tipi sağlayıcıları (F#) kullanarak bir sql veritabanına erişme en altındaki yönergeleri izleyerek bir veritabanı oluşturun. Eğer bu yönergeleri izlerseniz, SQL Server'ınız üzerinde birkaç basit tablo ve saklı yordam içeren MyDatabase adlı bir veritabanı oluşturursunuz.

Eğer zaten bir .dbml dosyasına sahipseniz, Bir F# projesi oluşturma ve ayarlama bölümüne atlayabilirsiniz. Aksi halde, SqlMetal.exe komut satırı aracını kullanarak varolan bir SQL veritabanı için bir .dbml dosyası oluşturabilirsiniz.

SqlMetal.exe kullanarak bir .dbml dosyası oluşturmak için

  1. Bir Developer Command Prompt açın.

  2. Komut satırında SqlMetal.exe /? girerek SqlMetal.exe'ye erişiminiz olduğundan emin olun. SqlMetal.exe genellikle Program Files ya da Program Files (x86) içinde Microsoft SDKs klasörü altında yüklüdür.

  3. SqlMetal.exe'yi aşağıdaki komut satırı seçenekleriyle çalıştırın. .dbml dosyasını oluşturmaj için c:\destpath yerine uygun bir konum yerleştirin, ve veritabanı sunucusu, örnek adı ve veritabanı adı için uygun değerleri ekleyin.

    SqlMetal.exe /sprocs /dbml:C:\destpath\MyDatabase.dbml /server:SERVER\INSTANCE /database:MyDatabase
    

    Not

    Eğer SqlMetal.exe izin sorunları nedeniyle dosyayı oluşturmakta sorun yaşıyorsa, geçerli dizini yazma izniniz olan bir klasöre değiştirin.

  4. Ayrıca diğer mevcut komut satırı seçeneklerine de bakabilirsiniz. Örneğin, üretilmiş türlere görünümler ve SQL işlevlerinin eklenmesini istiyorsanız kullanabileceğiniz seçenekler vardır. Daha fazla bilgi için bkz. SqlMetal.exe (kod oluşturma aracı).

Bir F# projesi oluşturma ve ayarlama

Bu adımda, bir proje oluşturup DBML tür sağlayıcısı kullanmak için gerekli başvuruları eklersiniz.

Bir F# projesi oluşturmak ve ayarlamak için

  1. Çözümünüze yeni bir F# Konsol Uygulaması projes ekleyin.

  2. Solution Explorer içinde, References için kısayol menüsünü açın, ve ardından Add Reference seçin.

  3. Assemblies alanı içinde, Framework düğümünü seçin, ve ardından, kullanılabilir derlemeler listesi içinde, System.Data ve System.Data.Linq derlemelerini seçin.

  4. Assemblies alanı içinde, Extensions seçin, ve ardından, kullanılabilir derlemeler listesi içinde, FSharp.Data.TypeProviders seçin.

  5. Projenize bu derlemelere başvuruları eklemek için OK düğmesini seçin.

  6. (İsteğe bağlı). Önceki adımda oluşturduğunuz .dbml dosyasını kopyalayın, ve dosyayı projenizin ana klasörü içinde kopyalayın. Bu klasör proje dosyasını (.fsproj) ve kod dosyalarını içerir. Menü çubuğunda, Project, Add Existing Item seçin, ve ardından projenize eklemek için .dbml dosyasını belirtin. Eğer bu adımları tamamlarsanız, sonraki adımdaki ResolutionFolder statik parametresini kullanmayabilirsiniz.

Tür sağlayıcısını yapılandırma

Bu bölümde, bir tür sağlayıcısı oluşturursunuz ve .dbml dosyası içinde açıklanan şemadan türler üretirsiniz.

Tür sağlayıcısını yapılandırmak ve türleri üretmek için

  • TypeProviders ad alanını açan ve kullanmak istediğiniz .dbml dosyası için tür sağlayıcısını örnekleyen kodu ekleyin. Eğer .dbml dosyasını projenize eklediyseniz, ResolutionFolder statik parametresini kullanmayabilirsiniz.

    open Microsoft.FSharp.Data.TypeProviders
    
    
    type dbml = DbmlFile<"MyDatabase.dbml", ResolutionFolder = @"<path to folder that contains .dbml file>>
    
    // This connection string can be specified at run time.
    let connectionString = "Data Source=MYSERVER\INSTANCE;Initial Catalog=MyDatabase;Integrated Security=SSPI;"
    let dataContext = new dbml.Mydatabase(connectionString)
    

    DataContext tür sağlayıcısı tüm üretilmiş türlere erişim sağlar ve DataContext devralır. DbmlFile tür sağlayıcısı ayarlayabildiğiniz çeşitli statik parametrelere sahiptir. Örneğin, DataContext=MyDataContext belirterek DataContext türü için farklı bir ad kullanabilirsiniz. Bu durumda, kodunuz aşağıdaki örneğe benzer:

    open Microsoft.FSharp.Data.TypeProviders
    
    
    
    type dbml = DbmlFile<"MyDatabase.dbml",
                         ContextTypeName = "MyDataContext">
    
    // This connection string can be specified at run time.
    let connectionString = "Data Source=MYSERVER\INSTANCE;Initial Catalog=MyDatabase;Integrated Security=SSPI;"
    let db = new dbml.MyDataContext(connectionString)
    

Veritabanını sorgulama

Bu bölümde, veritabanını sorgulamak için F# sorgu iadelerini kullanırsınız.

Verileri sorgulamak için

  • Veritabanını sorgulamak için kod ekleyin.

    query {
            for row in db.Table1 do
            where (row.TestData1 > 2)
            select row
    }
    |> Seq.iter (fun row -> printfn "%d %s" row.TestData1 row.Name)
    

Sonraki Adımlar

Diğer sorgu ifadelerini kullanmaya devam edebilirsiniz, ya da veri bağlamından bir veritabanı bağlantısı alabilir ve normal ADO.NET veri işlemleri gerçekleştirebilirsiniz. Ek adımlar için, İzlenecek yol: tipi sağlayıcıları (F#) kullanarak bir sql veritabanına erişme içinde "Veri Sorgulama" bölümünden sonraki bölümlere bakın.

Ayrıca bkz.

Görevler

İzlenecek yol: tipi sağlayıcıları (F#) kullanarak bir sql veritabanına erişme

Başvuru

DbmlFile türü sağlayıcı (F#)

SqlMetal.exe (kod oluşturma aracı)

Sorgu ifadelerini (F#)

Diğer Kaynaklar

Sağlayıcı türü