У меня есть объект с полями, которые вводятся интервал
и я хочу к выставленному те поля как свойства, которые получают и получают перечислимые значения типа для работы со строгим контролем типов.
таким образом, я создал новый частичный класс для объекта и добавил эти два свойства.
когда я пытаюсь создать новый экземпляр TestEntity и добавить его к контексту, и вызов сохраняет изменения, я получаю следующее исключение:
Ошибка произошла при обработке этого запроса. в System. Данные. Сервисы. Клиент. DataServiceContext. SaveAsyncResult. HandleBatchResponse () в Системе. Данные. Сервисы. Клиент. DataServiceContext. SaveAsyncResult. EndRequest () в Системе. Данные. Сервисы. Клиент. DataServiceContext. SaveChanges (опции SaveChangesOptions) в System. Данные. Сервисы. Клиент. DataServiceContext. SaveChanges ()
внутреннее исключение:
Система. InvalidOperationException: тип 'enum1' не имеет никаких устанавливаемых свойств. в System. Данные. Сервисы. Клиент. ClientType.. ctor (Вводят тип, Строковое имя типа, булевская переменная skipSettableCheck) в System. Данные. Сервисы. Клиент. ClientType. Создайте (Введите тип, булевская переменная expectModelType) в System. Данные. Сервисы. Клиент. DataServiceContext. WriteContentProperties (устройство записи XmlWriter, тип ClientType, Объектный ресурс) в System. Данные. Сервисы. Клиент. DataServiceContext. CreateRequestData (поле ResourceBox, булева новая строка) в System. Данные. Сервисы. Клиент. DataServiceContext. SaveAsyncResult. CreateChangeData (индекс Int32, булева новая строка) в System. Данные. Сервисы. Клиент. DataServiceContext. SaveAsyncResult. BeginNextChange (булевская переменная replaceOnUpdate)
таким образом, я полагал, что это пытается отразить перечислимые свойства как свойства классов. как я могу заставить контекст проигнорировать те свойства, когда он пытается размышлять над ними.
я использую комплект sp1 VS 2008 команды, SQL Server 2008.Net 3.5 Sp1.
Помощь.
частичный код класса:
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;
}
}
}
Не думаю, что вы сможете. В ADO.Net Data Services у вас не может быть перечислений для ваших прокси-объектов, которые отправляются на сервер. Попробуйте изменить свой объект, чтобы вместо этого использовать int (или short).