Mô hình khung thực thể của tôi được tạo ra từ cơ sở dữ liệu SQL Server. Vì tôi cần truy cập cơ sở dữ liệu từ Silverlight, tôi đã tạo một DomainService cho RIAServices dựa vào mô hình EF. Product
là một trong số EntityObject
được tạo tự động tương ứng với bảng Product
. Tôi đang cố chuyển lớp tùy chỉnh CompositeData
cho ứng dụng Silverlight như được hiển thị. Vấn đề là trường CurrentProduct
không thể truy cập được trong ứng dụng khách nhưng các trường chuỗi/int khác có thể truy cập được. Làm cách nào để có thể truy cập CurrentProduct
từ ứng dụng khách?Không thể truy cập loại EntityObject thông qua các dịch vụ 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();
}
}
Tiếp theo là phương pháp Dịch vụ tên miền:
[EnableClientAccess()]
public class LocalDomainService : DomainService
{
public IEnumerable<CompositeData> GetData()
{
List<CompositeData> listData = new List<CompositeData>();
//...
return listData;
}
}
Từ client 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
lớp là autogenerated trong Model1.Designer.cs
[EdmEntityTypeAttribute(NamespaceName="MyDBModel", Name="Product")]
[Serializable()]
[DataContractAttribute(IsReference=true)]
public partial class Product : EntityObject
{
//..
}
Nó được tạo ra trong dự án của khách hàng cũng (trong SilverlightProject.g.cs)
/// <summary>
/// The 'Product' entity class.
/// </summary>
[DataContract(Namespace="http://schemas.datacontract.org/2004/07/SilverlightProject")]
public sealed partial class Product : Entity
{
//..
}
Bạn Silverlight có tham chiếu đến một assembly, trong đó loại sản phẩm được định nghĩa? –
Vui lòng xem câu hỏi đã chỉnh sửa – Nemo