Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Şunlar için geçerlidir:SQL Server
Azure SQL Veritabanı
Azure SQL Yönetilen Örneği
Microsoft Fabric'te SQL veritabanı
SQL veritabanı projelerindeki proje başvuruları ile SQL projenizle diğer projeler arasında bağımlılıklar oluşturabilirsiniz. İki birincil proje başvurusu türü vardır:
-
Veritabanı başvuruları - SQL projeleri arasındaki bağımlılıklar veya veritabanı nesne tanımları sağlayan dosyalara
.dacpacve NuGet paketlerine yapılan başvurular. - .NET proje başvuruları - Tümleştirme testi, dağıtım otomasyonu ve kod oluşturma gibi senaryolar için .NET projelerinden SQL projelerine başvurular.
Her başvuru türünün ne zaman ve nasıl kullanılacağını anladığınızda, veritabanı geliştirme iş akışınızı etkili bir şekilde yapılandırabilirsiniz.
Veritabanı referansları
Veritabanı başvuruları, bir SQL projesinin başka bir SQL projesinden, .dacpac dosyadan veya yayımlanmış bir NuGet paketinden nesneleri birleştirmesine olanak tanır. Bu başvurular, veritabanı nesneleriniz paylaşılan şemadaki tablolar veya sistem veritabanı nesneleri gibi başka bir yerde tanımlanan nesnelere bağımlı olduğunda kullanılır.
Aynı çözümdeki başka bir SQL projesine temel veritabanı başvurusu şöyle görünür:
<ItemGroup>
<ProjectReference Include="..\Database1\Database1.sqlproj" />
</ItemGroup>
Veritabanı başvuruları üç ilişki türünü destekler:
- Aynı veritabanı - Başvuruda bulunan projedeki nesneler aynı veritabanı modelinin parçası olur.
- Farklı veritabanı, aynı sunucu - Veritabanı adı için SQLCMD değişkeniyle üç bölümlü adlandırma kullanan nesnelere başvuruda bulun.
- Farklı veritabanı, farklı sunucu - Hem sunucu hem de veritabanı adları için SQLCMD değişkenleriyle dört parçalı adlandırma kullanan nesnelere başvuruda bulunabilirsiniz.
Her ilişki türüne yönelik örnekler ve başvurularla proje oluşturma ve yayımlama yönergeleri de dahil olmak üzere veritabanı başvurularını yapılandırma hakkında ayrıntılı bilgi için bkz. Veritabanı başvurularına genel bakış.
.NET proje referansları
.NET projeleri, veritabanı geliştirmeyi uygulama koduyla tümleştirmek için SQL projelerine başvurabilir. .NET uygulamanızın test, dağıtım veya kod oluşturma amacıyla SQL projesinin derleme çıkışına (dosya) erişmesi .dacpac gerektiğinde bu başvuru türü kullanışlıdır.
Kullanım örnekleri
Bir .NET projesinden SQL projesine başvurmak için yaygın senaryolar şunlardır:
- Tümleştirme testleri - Testleri çalıştırmadan önce veritabanı şemasını bir test kapsayıcısına veya yerel örneğe dağıtan test projeleri.
-
Dağıtım otomasyonu - Hedef ortamlara program aracılığıyla dağıtan
.dacpackonsol uygulamaları veya araçları. - Model kodu oluşturma - SQL projesinde tanımlanan veritabanı şemasını temel alan kod oluşturan uygulamalar.
Proje referansını yapılandırın
.NET projesinden SQL projesine proje başvurusu eklediğinizde özniteliğini ReferenceOutputAssembly="false" eklemeniz gerekir. Bu özellik, .NET derleme işlemi sırasında SQL projesinin .NET derlemesi olarak referans alınmaya çalışılmadan derleme bağımlılığı olarak değerlendirilmesini belirtir.
<ItemGroup>
<ProjectReference Include="..\Database1\Database1.sqlproj" ReferenceOutputAssembly="false" />
</ItemGroup>
ReferenceOutputAssembly="false" SQL projeleri bir .NET derlemesi değil, birincil çıktıları olarak bir .dacpac dosya oluşturduğundan bu ayar gereklidir. Bu öznitelik olmadan , .NET derleme işlemi derleme olarak yüklemeyi .dacpac dener ve aşağıdakine benzer bir hatayla başarısız olur:
error CS0009: Metadata file 'Database1.dacpac' could not be opened -- Unknown file format.
.NET projenizde DACPAC'ye erişme
Proje başvurusunu yapılandırdıktan sonra, SQL projesi .NET projenizden önce derlenir. Dosya SQL .dacpac projesinin çıkış dizininde (genellikle bin/Debug veya bin/Release) kullanılabilir.
.NET kodunuzda .dacpac'e programatik olarak erişmek için, proje yapınıza göre dosya yolunu referans alın. Örneğin, SQL Server örneği oluşturmak için Testcontainers kullanan bir tümleştirme testinde:
// Path to the dacpac file built by the referenced SQL project
var dacpacPath = Path.Combine(
Directory.GetCurrentDirectory(),
"..", "..", "..", "..",
"Database1", "bin", "Debug",
"Database1.dacpac");
// Use DacFx to deploy the dacpac to your test database
var dacServices = new DacServices(connectionString);
using var dacpac = DacPackage.Load(dacpacPath);
dacServices.Deploy(dacpac, "TestDatabase");
Dacpac'i çıkış dizinine kopyalama
Dosyaya daha kolay erişim için .dacpac .NET projenizi derleme sırasında çıkış dizinine kopyalanacak şekilde yapılandırın. Dosyanıza .csproj aşağıdaki yapılandırmayı ekleyin:
<ItemGroup>
<None Include="..\Database1\bin\$(Configuration)\Database1.dacpac"
CopyToOutputDirectory="PreserveNewest"
Link="Database1.dacpac" />
</ItemGroup>
Bu yapılandırma, .dacpac dosyasını .NET projenizin çıkış dizinine kopyalar, böylece daha basit bir dosya yolunu kullanarak ona başvurabilirsiniz.
var dacpacPath = Path.Combine(
AppContext.BaseDirectory,
"Database1.dacpac");