2009-01-23 16 views
5

Tamam, VB.NET ile ilgili bir soruna girdim. Yani VB.NET'in tüm savunucuları bana yardım edebilir misiniz? İşte benim sorunum: Varlıklar için LINQ kullanıyorum, aynı zamanda LINQ to SQL ile çalışıyor, edmx dosyasını oluşturuyorum sonra Partilerden biri olarak aynı adın bir Partial Publc Sınıfı oluşturuyorum. sorun.Kısmi Sınıflar, LINQ, Arabirimler ve VB.NET

Arabirim Implements Interfaces.IAsset'i uygulamak için Kısmi sınıfı kullanmalıyım. Ancak VB.NET, mülkün sonuna "Implements Interfaces.IAsset.ID" yerleştirmek ister. Edmx dosyası olarak yapamadığım kısmi sınıf otomatik olarak oluşturulur ve gelecekte değişecektir.

Kamu Mülkiyet ID1() Tamsayı uygular C#

Interfaces.IAsset.ID olarak, gayet iyi ve harikalar yaratıyor: İşte

sıralama ihtiyacı kod çizgidir. Öyleyse neden VB.NET kodu üretilen sınıfta bir arayüz uygulayamıyor?

cevap

5

hile yapmak gerekir kısmi sınıfta dolaylama Biraz ...

Public Property AssetId() As Int32 Implements IAsset.AssetId 
    Get 
     Return Id1 
    End Get 
    Set(ByVal value As Int32) 
     Id1 = value 
    End Set 
End Property 

arayüz DBML tarafından üretilen gerçek özelliğini çağırır uygulayan özellik. Sınıf, esas olarak, çok zarif olmayan iki arabirim özelliğine sahip olacak, ancak ara yüz üzerinden erişildiğinde, farkı bilmeyeceksiniz.

+2

Evet Katılıyorum. Sadece zaman alıcı ve gereksiz kodlamalar – Coppermill

0

Bunun bir yolu yok. VB'nin arayüzlerin uygulanmasını nasıl ele aldığına dair bir kusur.

LINQ'niz için C# içindeki Varlıklar için ayrı bir kitaplık oluşturabilirsiniz. Ayrı bir projeye kısmi dersler koyabilir ve temelleri bir VB'de tutabiliyor olmanızdan emin değilim. Bunu hiç denemedim.