编程语言
首页 > 编程语言> > c#-如果您创建一个DomainService,公开一个实体,可以访问聚合实体吗?

c#-如果您创建一个DomainService,公开一个实体,可以访问聚合实体吗?

作者:互联网

假设您创建了一个RIA DomainService,并在其中包含一个Person(如下所示)实体,是否可以访问该对象上的聚合实体?

例如,如果我有这样的实体(请记住,这是一个幼稚的表示,它们是通过EF4设计器建模的):

public class Person
{
    string FirstName { get; set; }
    PhoneNumber { get; set; }
}

public class PhoneNumber
{
    public string AreaCode { get; set; }
    public string Trunk { get; set; }
    public string Number { get; set; }
}

如果在创建PeopleDomainService时包含Person,客户端可以访问其上的PhoneNumber(并对其进行修改)吗?

解决方法:

是的,您可以引入相关实体.

在PeopleDomainService.metadata.cs文件中,查找PersonMetadata类.在“电话号码”属性上,添加“包含”属性:

[Include]:
public EntityCollection<PhoneNumber> PhoneNumbers { get; set; }

在PeopleDomainService.cs中,查找GetPersons函数并将其修改为包括PhoneNumbers:

public IQueryable<Person> GetPersons()
{
    return this.ObjectContext.Persons.Include("PhoneNumbers");
}

您可以在MSDN>上找到更多详细信息. Walkthrough: Taking a Tour of RIA Services>显示相关数据

标签:wcf-ria-services,odata,entity-framework-4,c
来源: https://codeday.me/bug/20191208/2095064.html