所以我一直在使用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,但这似乎是应该正在运行的框架的基本部分。
答案 0 :(得分:1)
我解决了这个问题。引用的DataContext是在另一个程序集中,我定义的部分类是在Web项目中,因此系统尝试使用的类的版本之间存在某种脱节。
将datacontext移动到Web项目中解决了它。