0

因此,我一直在使用 Silverlight 的 .NET RIA 服务,并基于来自 LINQ2SQL DataContext 的几个实体创建了一个新的 DomainService。

当我试图编译时,我得到了这个错误:

错误 2 实体“Data.Service”没有定义键。DomainService 操作公开的实体必须至少具有一个用 KeyAttribute 标记的属性。门户网站

所以我为 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 回答