My Entity FrameworkモデルがSQL Serverデータベースから生成されます。 Silverlightからデータベースにアクセスする必要があるため、EFモデルに対してRIAServices用のDomainServiceを生成しました。 Product
は、テーブルProduct
に対応する自動生成されたEntityObject
の1つです。私は、カスタムクラス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();
}
}
ドメインサービス方法であって、Silverlightのクライアントから
[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!
}
}
EDIT: Product
クラスはModel1.Designer.cs
[EdmEntityTypeAttribute(NamespaceName="MyDBModel", Name="Product")]
[Serializable()]
[DataContractAttribute(IsReference=true)]
public partial class Product : EntityObject
{
//..
}
それはあなたがあるには余りにものDomainServiceクラスであなたのProduct
実体を公開する必要が
/// <summary>
/// The 'Product' entity class.
/// </summary>
[DataContract(Namespace="http://schemas.datacontract.org/2004/07/SilverlightProject")]
public sealed partial class Product : Entity
{
//..
}
Silverlightクライアントは、製品タイプが定義されているアセンブリを参照していますか? –
編集した質問 – Nemo