2009-06-15 28 views
6

Benmaruz enum yazılan özellikler

int yazıldığında alanları olan bir varlık var ve almak ve enum türü değerlerini alma özellikleri olarak maruz bu alanlarla istiyorum güçlü yazdığınız için.

Bu nedenle, varlık için yeni bir kısmi sınıf oluşturdum ve iki özelliği ekledim.

i kurtarmak i aşağıdaki istisna almak değişiklikleri TestEntity yeni bir örneğini oluşturmak ve, bağlama eklemek ve arama yapmaya çalıştığını

: bu isteği işlerken

bir hata oluştu. System.Data.Services.Client.DataServiceContext.SaveAsyncResult.EndRequest() System.Data.Services.Client.DataServiceContext.SaveChanges en de System.Data.Services.Client.DataServiceContext.SaveAsyncResult.HandleBatchResponse() de (SaveChangesOptions seçenekleri System.Data.Services.Client.DataServiceContext.SaveChanges de) ()

iç istisnadır:

iletisi: türü 'enum1' bir ayarlanabilir özelliklere sahiptir. System.Data.Services.Client.ClientType..ctor (Type type, String typeName, Boolean skipSettableCheck) System.Data.Services.Client.ClientType.Create (Type type, Boolean expectModelType) at System.Data adresindeki . System.Data.Services.Client.DataServiceContext.CreateRequestData (ResourceBox kutusu, Boolean newline) at System.Data.Services.Client.DataServiceContext.SaveAsyncResult adresindeki Services.Client.DataServiceContext.WriteContentProperties (XmlWriter yazıcısı, ClientType türü, Object resource) System.Data.Services.Client.DataServiceContext.SaveAsyncResult.BeginNextChange de .CreateChangeData (Int32 indeksi, Boole yeni satır) (Boolean replaceOnUpdate)

bu yüzden enum özelliklerini sınıf özellikleri olarak yansıtmayı denedim. Bağlamı, bunları yansıtmaya çalıştığı zaman bu özellikleri nasıl görmezden gelebilirim?

VS 2008 takım paketi sp1, SQL Server 2008, .NET 3.5 Sp1 kullanıyorum.

Yardım.

kısmi sınıf kodu:

public partial class TestEntity 
{  
    public enum1 Field1 
    { 
     get 
     { 
      return (enum1)field1; 
     } 
     set 
     { 
      field1 = (Int16)value; 
     } 
    } 

    public enum2 Field2 
    { 
     get 
     { 
      return (enum2)field2; 
     } 
     set 
     { 
      field2 = (Int16)value; 
     } 
    } 
}  
+0

Bunun için herhangi bir iş buldunuz mu? – Ram

cevap

2

ben yapabilirsiniz sanmıyorum. ADO.Net Veri Hizmetleri'nde, sunucuya gönderilen proxy nesnelerinizde enums olamaz. Bunun yerine bir int (veya kısa) kullanmak için nesneyi değiştirmeyi deneyin.