El modelo de My Entity Framework se genera a partir de la base de datos de SQL Server. Como necesito acceder a la base de datos de Silverlight, generé un DomainService para RIAServices en comparación con el modelo de EF. Product
es uno de los EntityObject
autogenerados correspondientes a la tabla Product
. Estoy intentando pasar la clase personalizada CompositeData
al cliente de Silverlight como se muestra. El problema es que el campo CurrentProduct
no está accesible en el cliente, pero se puede acceder a los otros campos string/int. ¿Cómo puede hacer que CurrentProduct
sea accesible desde el cliente?No se puede acceder al tipo de EntityObject a través de los servicios de RIA
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();
}
}
A continuación se presenta el método de Servicio de dominio:
[EnableClientAccess()]
public class LocalDomainService : DomainService
{
public IEnumerable<CompositeData> GetData()
{
List<CompositeData> listData = new List<CompositeData>();
//...
return listData;
}
}
Desde el cliente de 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!
}
}
EDIT: Product
clase se genera automáticamente en Model1.Designer.cs
[EdmEntityTypeAttribute(NamespaceName="MyDBModel", Name="Product")]
[Serializable()]
[DataContractAttribute(IsReference=true)]
public partial class Product : EntityObject
{
//..
}
Se pone genera en el proyecto de cliente también (en SilverlightProject.g.cs)
/// <summary>
/// The 'Product' entity class.
/// </summary>
[DataContract(Namespace="http://schemas.datacontract.org/2004/07/SilverlightProject")]
public sealed partial class Product : Entity
{
//..
}
¿El cliente de Silverlight hace referencia a un ensamblaje, donde se especifica el tipo Producto? –
Consulte la pregunta editada – Nemo