gpt4 book ai didi

c# - 无法通过 RIA 服务访问 EntityObject 类型

转载 作者:太空狗 更新时间:2023-10-29 21:59:06 26 4
gpt4 key购买 nike

我的 Entity Framework 模型是从 SQL Server 数据库生成的。由于我需要从 Silverlight 访问数据库,因此我针对 EF 模型为 RIAServices 生成了一个 DomainService。 Product 是与表 Product 对应的自动生成的 EntityObject 之一。我正在尝试将自定义类 CompositeData 传递给 Silverlight 客户端,如图所示。问题是客户端无法访问 CurrentProduct 字段,但可以访问其他字符串/整数字段。如何使客户端可以访问 CurrentProduct

public class CompositeData
{
[Key]
public Guid PKey { get; set; }
public string CompositeName { get; set; }
public string Identity { get; set; }
public Product CurrentProduct { get; set; } //Product is an auto-generated EntityObject class

public CompositeData()
{
PKey = Guid.NewGuid();
}
}

以下是领域服务方法:

[EnableClientAccess()]
public class LocalDomainService : DomainService
{
public IEnumerable<CompositeData> GetData()
{
List<CompositeData> listData = new List<CompositeData>();
//...
return listData;
}
}

从 Silverlight 客户端,

    domService.Load(domService.GetDataQuery(), GetDataCompleted, null);

private void GetDataCompleted(LoadOperation<CompositeData> compData)
{
foreach(CompositeData cdItem in compData.Entities)
{
// cdItem.CompositeName is accessible
// cdItem.CurrentProduct is not accessible!
}
}

编辑:Product 类在 Model1.Designer.cs 中自动生成

    [EdmEntityTypeAttribute(NamespaceName="MyDBModel", Name="Product")]
[Serializable()]
[DataContractAttribute(IsReference=true)]
public partial class Product : EntityObject
{
//..
}

它也在客户端项目中生成(在 SilverlightProject.g.cs 中)

    /// <summary>
/// The 'Product' entity class.
/// </summary>
[DataContract(Namespace="http://schemas.datacontract.org/2004/07/SilverlightProject")]
public sealed partial class Product : Entity
{
//..
}

最佳答案

您可以使用 IncludeAssociation 属性定义 CompositeDataProduct 之间的关系。

[System.ServiceModel.DomainServices.Server.Include]
[System.ComponentModel.DataAnnotations.Association("AssociationName", "MainKey", "AssociatedObjectKey")]
public Product CurrentProduct { get; set; }

关于c# - 无法通过 RIA 服务访问 EntityObject 类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8960944/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com