【问题标题】:RIA does not generate all proxy entitiesRIA 不会生成所有代理实体
【发布时间】:2011-10-05 08:45:19
【问题描述】:

框架:Silverlight 4 + Entity Framework 4(SL业务应用:SL项目和.WEB项目在一个解决方案中)

我的数据层中有两个类(未映射到数据库,手动创建 - 我需要它们用于特定视图)

[EnableClientAccess]
public class CityInfoFull
{
    [Key]
    public int Id { get; set; }

    public String Country{ get; set; }
    public String Region { get; set; }
    public String City { get; set; }
    public int Population { get; set; }
    public DateTime Founded { get; set; }
}

RIA 在 Geography.Web.g.cs 中生成适当的代理类

在同一个命名空间中,我还有另一个类:

[EnableClientAccess]
public class Person
{
    [Key]
    public int Id { get; set; }

    public String FullName { get; set; }
    public DateTime DateOfBirth { get; set; }
}

但是,RIA 不想为此类生成代理。我需要 Silverlight 应用程序中的代理,但它没有生成。

这可能是什么原因?我不知道该去哪里找了。

我试过了:

  • 检查文件是否设置为编译
  • 检查文件是否在适当的命名空间中
  • 重建包含该文件的 Web 项目
  • 重建 SL 项目
  • 删除 .g.cs 文件并重建项目。
  • 检查是否生成了任何其他代理类。 (我发现我创建的任何新类都没有代理,但是如果我更改已经存在的类,它们的代理将被更新。但是没有创建新的代理。似乎只有在某个点之前创建的类是生成并且从那时起创建的所有内容都没有得到它的代理,即使我删除 .g.cs 并让 RIA 重新生成 .g.cs)。

这些都不起作用。我还能做什么?

【问题讨论】:

  • 您是否为 CityInfoFull 和 Person 定义了查询操作?
  • 我已经为 CityInfoFull 定义了一个,但我没有为 Person 定义。请不要告诉我 RIA 框架仅在它们用于某些查询/调用操作时才会生成实体……我早上好……;)如果这是真的,请您将其作为答案,以便我们可以结束这个问题。

标签: c# silverlight-4.0 entity-framework-4 code-generation wcf-ria-services


【解决方案1】:

您需要在域服务中为要在 silverlight 项目中使用的每个实体定义一个查询方法。在您的情况下,您必须为 CityInfoFullPerson 定义查询操作。

public class MyDomainSerivce : DomainService {

   public IQueryable<CityInfoFull> GetCities() {
     // your logic
   }

   public IQueryable<Person> GetPersons() {
     // your logic
   }
}

如果您想允许指定类型的实体可以在 silverlight 应用程序中插入、更新和删除,您需要在您的 DomainService 中为实体定义相应的插入、更新和删除操作。

查看WCF RIA Services 文档以获取更多详细信息。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-11-07
    • 1970-01-01
    • 2023-03-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多