RIA的DomainService +的ActiveRecord(RIA DomainService

2019-09-19 12:06发布

我试图在使用.NET RIA服务SL3项目使用SubSunsonic.ActiveRecord。 然而,当我试图返回的DomainService类中的一些IQuerable我得到一个错误,由亚音速生成的类有一个属性“列”与不支持的类型。 这就是我

public IEnumerable<SE_NorthWind.SuperEmployee> GetIntegers()
{
  return SE_NorthWind.SuperEmployee.All()
    .Where(emp => emp.Issues > 100)
    .OrderBy(emp => emp.EmployeeID);
}

这是我的错误

Error   7   Entity 'SE_NorthWind.SuperEmployee' has a property 'Columns' with an unsupported type.  SuperEmployee

任何想法,该怎么办? 不要真的想使用LINQ到SQL :)

谢谢

PS只是试图从亚音速LinqTemplates,但是这种解决方案我得到的错误

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表具有主键,使由亚音速生成的类可以看到它

...
Columns.Add(new DatabaseColumn("EmployeeID", this)
            {
                IsPrimaryKey = true,
                DataType = DbType.Int32,
                IsNullable = false,
                AutoIncrement = true,
                IsForeignKey = false,
                MaxLength = 0
            });
...

但RIA的对象,他们需要一些属性。 我想我会与本地的LINQ to转至SQL直到亚音速适应这一切:(

Answer 1:

为了回答你问题的第二部分。

您需要将“KeyAttribute”添加到PrimaryKey属性的“雇员”属性。 属性是在“System.ComponentModel.DataAnnotations”命名空间。

没有了上次声波3,但你可以改变基本模板来生成这个或更改子声波引擎,并提交它作为一个补丁。

我使用Silverlight 3与RaiServices运行。

希望这可以帮助。



Answer 2:

你可以尝试删除[EnableClientAccess()]属性,看看你的项目将建设?



文章来源: RIA DomainService + ActiveRecord