My Entity Framework 모델이 SQL Server 데이터베이스에서 생성됩니다. Silverlight에서 데이터베이스에 액세스해야하므로 EF 모델에 대해 RIAServices 용 DomainService를 생성했습니다. Product
은 테이블 Product
에 해당하는 자동 생성 된 EntityObject
중 하나입니다. 표시된대로 사용자 지정 클래스 CompositeData
을 Silverlight 클라이언트에 전달하려고합니다. 문제는 클라이언트에서 CurrentProduct
필드에 액세스 할 수 없지만 다른 문자열/int 필드에 액세스 할 수 있다는 것입니다. 클라이언트에서 CurrentProduct
에 액세스하려면 어떻게해야합니까? 다음RIA 서비스를 통해 EntityObject 형식에 액세스 할 수 없습니다.
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;
}
}
,
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
{
//..
}
그것은
/// <summary>
/// The 'Product' entity class.
/// </summary>
[DataContract(Namespace="http://schemas.datacontract.org/2004/07/SilverlightProject")]
public sealed partial class Product : Entity
{
//..
}
Silverlight 클라이언트가 Product 유형이 정의 된 어셈블리를 참조합니까? –
편집 된 질문 – Nemo