6

int 型のフィールドを持つエンティティがあります

そして、これらのフィールドを、厳密に型指定された作業のために列挙型の値を取得および受信するプロパティとして公開したいと考えています。

そのため、エンティティの新しい部分クラスを作成し、2 つのプロパティを追加しました。

TestEntity の新しいインスタンスを作成して context に追加しようとすると、変更の保存を呼び出すと、次の例外が発生します。

このリクエストの処理中にエラーが発生しました。System.Data.Services.Client.DataServiceContext.SaveAsyncResult.HandleBatchResponse() で System.Data.Services.Client.DataServiceContext.SaveAsyncResult.EndRequest() で System.Data.Services.Client.DataServiceContext.SaveChanges (SaveChangesOptions オプション) で システムで.Data.Services.Client.DataServiceContext.SaveChanges()

内部例外は次のとおりです。

System.InvalidOperationException: 型 'enum1' には設定可能なプロパティがありません。System.Data.Services.Client.ClientType..ctor (型の型、文字列 typeName、ブール値の skipSettableCheck) で System.Data.Services.Client.ClientType.Create (型の型、ブール型の e​​xpectModelType) で System.Data.Services.Client .DataServiceContext.WriteContentProperties(XmlWriter ライター、ClientType タイプ、オブジェクト リソース) System.Data.Services.Client.DataServiceContext.CreateRequestData(ResourceBox ボックス、ブール改行) で System.Data.Services.Client.DataServiceContext.SaveAsyncResult.CreateChangeData(Int32 インデックス) 、ブール改行) System.Data.Services.Client.DataServiceContext.SaveAsyncResult.BeginNextChange(ブール値 replaceOnUpdate) で

だから私は、列挙型のプロパティをクラスのプロパティとして反映しようとしていると考えました。それらを反映しようとするときに、コンテキストがそれらのプロパティを無視するようにするにはどうすればよいですか。

私はVS 2008チームスイートsp1、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;
        }
    }   
}    
4

1 に答える 1

2

私はあなたができるとは思わない。ADO.Net Data Services では、サーバーに送信されるプロキシ オブジェクトに列挙型を含めることはできません。代わりに int (または short) を使用するようにオブジェクトを変更してみてください。

于 2010-02-12T23:51:08.187 に答える