0

そこで、Silverlight を使用して .NET RIA サービスをいじり、LINQ2SQL DataContext のいくつかのエンティティに基づいて新しい DomainService を作成しました。

コンパイルしようとすると、次のエラーが発生しました。

エラー 2 エンティティ 'Data.Service' にはキーが定義されていません。DomainService 操作によって公開されるエンティティには、KeyAttribute でマークされたプロパティが少なくとも 1 つ必要です。ポータル

だから私は次のように Service オブジェクトのメタデータクラスを追加しました:

using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.Linq;
using System.Web;

namespace Data
{
    [MetadataType(typeof(Service.ServiceMetadata))]
    public partial class Service
    {
        internal sealed class ServiceMetadata
        {
            [Key]
            public int PublicAPI;
        }
    }
}

今、私はこのエラーを受け取ります:

エラー 4 タイプ 'Data.Service' に関連付けられているメタデータ タイプには、次の不明なプロパティまたはフィールドが含まれています: PublicAPI。これらのメンバーの名前がメイン タイプのプロパティの名前と一致していることを確認してください。ポータル

PublicAPI は、L2S によって生成されたメイン オブジェクトで明確に定義されており、名前空間は同じです。私が間違っているかもしれないことについてのアイデアはありますか?

.NET RIA サービスがまだ CTP であることは認識していますが、これは機能するはずのフレームワークの基本的な部分のようです。

4

1 に答える 1

1

この問題を解決しました。参照していた DataContext は別のアセンブリにあり、定義していた部分クラスは Web プロジェクトにあったため、システムが使用しようとしていたクラスのバージョン間に何らかの切断がありました。

データコンテキストを Web プロジェクトに移動すると解決しました。

于 2009-09-08T19:05:44.593 に答える