2009-07-24 23 views
5

This question, sunucu tarafı tarafından oluşturulan GUID'leri varlık çerçevesiyle kullanamayacağınızı vurgular. Ancak, GUID nesnesinin Veritabanı API'sinin DAL düzeyinde işlenmesini istiyorum (yani, bir varlığın yapıcısı çağrıldığında, varlığın kimliğinin yeni bir GUID'ye başlatılmasını istiyorum). Planım, varlıkların kısmi sınıfları olan bir grup kod dosyasını oluşturmak için küçük bir araç yazmak. Bunu yapmanın bir yolu var, soru şu: Bunu yapmak için aklımdan mı çıktım yoksa bunu yapmamın yolu mu?GUID ve Varlık Çerçevesi ile Çalışmak

Sorunum edmx dosyası güncellendiğinde, bir sürü kod dosyasını da düzenlemek zorunda kalmak istemiyorum, sadece gerekli olanı yapacak bir araç çalıştırmak istiyorum.

Yine kafam düz mü?

cevap

6

Kısmi sınıflara bakarsanız Varlık Çerçevesi varsayılan olarak oluşturulursa, varsayılan kurucu yoktur.

Yani güzel çalışacak ayrı bir kısmi sınıfta bunu:

public partial class Customer{ 
    public Customer(){ 
     _ID = Guid.NewGuid(); 
    } 
} 

Yani muhtemelen planlıyoruz böyle bir şey yapmak için hiçbir neden yoktur.

Bunu yapmak için T4 şablonlarına bakmak isteyebilirsiniz. EF 4.0 (ör. .NET 4.0'da EF) bu şekilde oluşturulan kodu kişiselleştirmenizi sağlar. Şimdi 4.0 deneyimi oldukça görünürken, sadece .NET 3.5 SP1'de gayet iyi çalışacak bu kısmi sınıfları oluşturmak için T4'e göre kolayca bir şeyler koyabilirsiniz.

Umut bu

Alex

+0

Çok yararlı öneri yardımcı olur. Bu projede muhtemelen T4 Şablonlarını kullanmayacağım, ancak diğer projeleri tanımak için çok faydalı olacağım. –

+0

Bu, newid() öğesinin bir sunucu varsayılan değeri olmadığında benim için çalıştı. Teşekkürler! – el2iot2