首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >RIA DomainService + ActiveRecord

RIA DomainService + ActiveRecord
EN

Stack Overflow用户
提问于 2009-07-18 20:57:11
回答 2查看 2.7K关注 0票数 0

我尝试在使用.NET RIA服务的SL3项目中使用SubSunsonic.ActiveRecord。然而,当我试图在DomainService类中返回一些列时,我得到了一个错误,由Subsonic生成的类有一个带有不支持类型的属性‘IQuerable’。这就是我所拥有的

代码语言:javascript
复制
public IEnumerable<SE_NorthWind.SuperEmployee> GetIntegers()
{
  return SE_NorthWind.SuperEmployee.All()
    .Where(emp => emp.Issues > 100)
    .OrderBy(emp => emp.EmployeeID);
}

这是我得到的错误

代码语言:javascript
复制
Error   7   Entity 'SE_NorthWind.SuperEmployee' has a property 'Columns' with an unsupported type.  SuperEmployee

你知道该怎么做吗?我真的不想使用Linq to SQL :)

Thx

附注:我刚尝试从SubSonic LinqTemplates,但是这个解决方案我得到了错误

代码语言:javascript
复制
Error   4   The entity 'SE_NorthWind.SuperEmployee' does not have a key defined. Entities exposed by DomainService operations must have must have at least one property marked with the KeyAttribute.   SuperEmployee

当然,SuperEmployee表有一个主键,因为SubSonic生成的类可以看到它

代码语言:javascript
复制
...
Columns.Add(new DatabaseColumn("EmployeeID", this)
            {
                IsPrimaryKey = true,
                DataType = DbType.Int32,
                IsNullable = false,
                AutoIncrement = true,
                IsForeignKey = false,
                MaxLength = 0
            });
...

但是RIA对象,它们需要一些属性。我想我将不得不使用原生Linq to SQL,直到SubSonic适应所有这些:(

EN

回答 2

Stack Overflow用户

发布于 2009-08-04 16:03:03

回答你问题的第二部分。

您需要在"EmployeeId“属性的PrimaryKey属性中添加"KeyAttribute”。该属性位于"System.ComponentModel.DataAnnotations“名称空间中。

在亚音速3上没有,但你可以改变底层模板来生成它,或者改变亚音速引擎并将其作为补丁提交。

我运行的是带有RaiServices的SilverLight 3。

希望这能有所帮助。

票数 0
EN

Stack Overflow用户

发布于 2009-08-21 23:14:30

您是否可以尝试删除EnableClientAccess()属性,以查看您的项目是否可以构建?

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1148553

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档