Linq To SQL sınıflarımı düzenli olarak yenilemem gerekir; Evet, veri şemamı yeterince düşünemediğim için üzülüyorum, kötü geliştirici, reklam nauseum. SQLMetal'in neredeyse hile yaptığını buldum, ama belki de parametre listesinden bir şey özlüyorum. SQLMetal, sınıflar oluşturur, ancak parametresiz yapıcılar değil
Ben Visual Studio Harici Araçlarını kullanarak benim parlak yeni bir araç çubuğu düğmesinden benim toplu dosyasını çalıştırın
,@echo off
del c:\path\to\LinqToSql.dbml
SQLMetal.exe /server:SERVER\SQLSERVER /database:db /timeout:0 /dbml:"c:\path\to\LinqToSql.dbml" /namespace:DAL /context:DataDataContext /entitybase:System.Data.Linq.DataContext /language:csharp /pluralize
SqlMetal yaşasın, .dbml dosyası oluşturur. Ancak, Soru 1 Programlamam .dbml dosyasını projeme programlı olarak ekleyebilir miyim?
Soru 2
Neden, tanıyorum, sonra elle yeni oluşturulan .dbml dosyasını içeren derleme yaparken benim sınıfların her biri kendi parametresiz inşaatçı hat numarasıyla ilişkili yapı hatalarını aşağıdaki? Örneğin. 30 tablo = 30 yapı hatası.
'System.Data.Linq.DataContext' does not contain a constructor that takes 0 arguments
benim DataDataContext
oluşturulan sınıf bir parametresiz oluşturucu olmadan olduğunu fark, bu yüzden ek kısmi sınıfını ekledi, ama yine de hile yapmaz did fiili
public partial class DataDataContext
{
public DataDataContext() :
base(global::DAL.Properties.Settings.Default.MyConnectionString, mappingSource)
{
OnCreated();
}
}
Bu yenileme işlemi otomatik hale edebilmek, ancak elle benim için çalışmıyor bu yapıcı hataları üretir oluşturulan .dbml dosyası ekleyerek düşündüm.
Eklenen ödül. OP Designer'ı sorun yaşamadan kullandım, ancak SQL Compact ile çalışıp SQLMetal'i geçtim, çoğumuz parametresiz bir kurucunun nasıl üretileceğini bilmek istiyoruz. – aevanko