2009-06-15 14 views
6

Tôi có một thực thể với các lĩnh vực được đánh intVạch trần enum gõ thuộc tính cho thực thể khuôn khổ tổ chức trong lĩnh vực dịch vụ dữ liệu ADO.NET bối cảnh khách hàng

và tôi muốn tiếp xúc với những lĩnh vực như tài sản đó có được và nhận giá trị kiểu enum để làm việc mạnh mẽ đánh máy.

vì vậy tôi đã tạo một lớp học một phần mới cho thực thể và thêm hai thuộc tính.

khi tôi cố gắng tạo ra một trường hợp mới của TestEntity và thêm nó vào bối cảnh, và gọi lưu các thay đổi tôi nhận được ngoại lệ sau đây:

Có lỗi xảy ra trong khi thực hiện yêu cầu này. tại System.Data.Services.Client.DataServiceContext.SaveAsyncResult.HandleBatchResponse() tại System.Data.Services.Client.DataServiceContext.SaveAsyncResult.EndRequest() tại System.Data.Services.Client.DataServiceContext.SaveChanges (SaveChangesOptions options) tại System.Data.Services.Client.DataServiceContext.SaveChanges()

ngoại trừ bên trong là:

System.InvalidOperationException: loại 'enum1' không có tính chất settable. tại System.Data.Services.Client.ClientType..ctor (Loại loại, String typeName, Boolean skipSettableCheck) tại System.Data.Services.Client.ClientType.Create (Loại loại, Boolean expectModelType) tại System.Data. Services.Client.DataServiceContext.WriteContentProperties (Trình soạn thảo XmlWriter, kiểu ClientType, Tài nguyên đối tượng) tại System.Data.Services.Client.DataServiceContext.CreateRequestData (hộp ResourceBox, dòng mới Boolean) tại System.Data.Services.Client.DataServiceContext.SaveAsyncResult .CreateChangeData (Int32 index, newline Boolean) tại System.Data.Services.Client.DataServiceContext.SaveAsyncResult.BeginNextChange (Boolean replaceOnUpdate)

vì vậy tôi figured nó cố gắng để phản ánh các thuộc tính enum như các thuộc tính lớp học. làm thế nào tôi có thể làm cho bối cảnh bỏ qua các thuộc tính khi nó cố gắng để phản ánh trên chúng.

tôi đang sử dụng bộ phần mềm nhóm VS 2008 sp1, SQL Server 2008, .Net 3.5 Sp1.

Trợ giúp.

mã partial class:

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

Bạn có tìm thấy bất kỳ công việc nào cho việc này không? – Ram

Trả lời

2

Tôi không nghĩ rằng bạn có thể. Trong dịch vụ dữ liệu ADO.Net, bạn không thể có enums trên các đối tượng proxy của bạn được gửi đến máy chủ. Hãy thử thay đổi đối tượng của bạn xung quanh để sử dụng một int (hoặc ngắn) để thay thế.

Các vấn đề liên quan