2009-03-26 6 views
1

私はこの1つ私の髪を引っ張っています。 Linq to SQLデータコンテキストを使用するADO.Net Data Serviceを実装しようとしています。私はそれが働いていると思ったが、私のテーブルのURLは常に例外を取得します。ADO.NetデータサービスでGUIDを使用

動作していないテーブルと例外的なテーブルの間に明らかな違いは、例外を取得するテーブルが主キーであるGUidを使用していることです。 Guidは、実際にはASP.netメンバーシップで使用されるUserIdに関連するUserIDです。 (私はASP.netメンバーシップテーブルを公開していませんが、私がそうだった場合、これらもまた壊れていると思います)。

非常に単純なテーブルです: 名前:UserDetails :: | GuidユーザーID | int GroupID(外部キー)|文字列名|

Guidsを動かす手口があるかどうかは知りませんか?もしかしたらこれはまったく別の問題でしょうか?

サービスからの例外は次のとおりです。 このリクエストの処理中にエラーが発生しました。

InnerError:このリクエストの処理中にエラーが発生しました。

タイプ:のSystem.InvalidOperationExceptionのStackTrace

: のT System.Data.Services.Serializers.SyndicationSerializer.WriteComplexObjectValue(Object要素、文字列プロパティ名、ResourceTypeがexpectedType、文字列relativeUri、DictionaryContentコンテンツ)System.Dataで .Services.Serializers.SyndicationSerializer.WriteObjectProperties(IExpandedResult、Object customObject、ResourceType resourceType、Uri absoluteUri、String relativeUri、SyndicationItemアイテム、DictionaryContentコンテンツ) at System.Data.Services.Serializers.SyndicationSerializer.WriteComplexObjectValue(Object要素、String propertyName 、リソースタイプexpectedType、String relativeUri、DictionaryContent content) 、System.Data.Services.Serializers.SyndicationSerializer.WriteObjectProperties(IExpandedResult、オブジェクトcustomObject、ResourceTypeリソースタイプ、Uri absoluteUri、String relativeUri、SyndicationItemアイテム、DictionaryContentコンテンツ) at System。 System.Data.Services.Serializers.SyndicationSerializer.WriteObjectProperties(IExpandedResult、Object customObject、ResourceType resourceType、Uri)で、Data.Services.Serializers.SyndicationSerializer.WriteComplexObjectValue(Object要素、String propertyName、ResourceType expectedType、String relativeUri、DictionaryContent content) absoluteUri、String relativeUri、SyndicationItemアイテム、DictionaryContentコンテンツ) at System.Data.Services.Serialize rs.SyndicationSerializer.WriteEntryElement(展開されたIExpandedResult、オブジェクト要素、型expectedType、Uri absoluteUri、String relativeUri、SyndicationItem target) at System.Data.Services.Serializers.SyndicationSerializer <DeferredFeedItems> d__0.MoveNext()System.ServiceModel.Syndication.Atom10FeedFormatter.WriteItems(たXmlWriterライター、IEnumerable`1アイテム、ウリfeedBaseUri)System.ServiceModel.Syndication.Atom10FeedFormatter.WriteFeedToで (たXmlWriterライタで 、SyndicationFeedフィードSystem.Data.Services.Serializers.SyndicationSerializerでSystem.ServiceModel.Syndication.Atom10FeedFormatter.WriteToで System.ServiceModel.Syndication.Atom10FeedFormatter.WriteFeed(のXmlWriterライター) で、ブールisSourceFeed)(たXmlWriterライター) 。WriteTopLevelElements(IExpandedResultが膨張、のIEnumerator要素、ブールhasMoved)System.Data.Services.Serializers.Serializer.WriteRequest(IEnumeratorをqueryResults、ブールhasMoved)System.Data.Services.ResponseBodyWriter.Writeで (ストリームstream)

答えて

0

問題が修正されました。実際にはGuidの値を使用することとは関係ありませんでした。

LinqのUserDetailクラスに[IgnoreProperties( "User")]をSQLに追加する必要がありました。

「ユーザー」プロパティは、ASP.Netメンバシップのユーザー情報(実際のテーブル名はaspnet_Users)を保持する「ユーザー」クラスとの関係です。私はLinq to SQLの "User"クラスをデータサービスで無視しているので、これは問題であったに違いないと思います。

私は、データサービスにアクセスしたときにデータサービスが何のエラーも投げていないということでした。 DataService.svcにアクセスしたときにDataServiceKey()またはIgnoreProperties()デコレーションを追加する必要があった他のすべてのプロパティでは、問題のプロパティについて不平を言う例外が発生します。どんな理由であれ、私はこの1つのプロパティに問題を与えませんでした。だから、何かが間違っていたことを認識していませんでした。上記のように、例外が発生したときは役に立たなかった。

したがって、ADO.Net Data ServicesでLinq To SQLを使用している他の人にとって、これはレッスンです。 無視するクラスを参照するプロパティでIgnoreProperties()を使用することを確認してください。

1

これはバグのようです。私はあなたがhttp://connect.microsoft.com/visualstudio/にそれを報告することをお勧めします、そして、あなたのバグ報告のURLをここに投稿して、それに投票することができます。

関連する問題