我正在使用 RIA 服务 SP2 和实体框架 5(从现有数据库生成),但是当我传递一个实体对象并引用另一个实体对象时,我没有得到引用的对象。我正在实体框架端执行 .Include,并将“包含”属性放在引用的实体上。我的课程看起来与此类似:
[MetadataTypeAttribute(typeof(ProfileValue.ProfileValueMetadata))]
public partial class ProfileValue
{
internal class ProfileValueMetadata
{
private ProfileValueMetadata()
{
}
[Key]
public int ValueID { get; set; }
public int ItemID { get; set; }
[Include]
[Composition]
[Association("ProfileValue_ProfileItem", "ItemID", "ItemID")]
public virtual ProfileItem ProfileItem { get; set; }
public string Value { get; set; }
}
}
和:
[MetadataTypeAttribute(typeof(ProfileItem.ProfileItemMetadata))]
public partial class ProfileItem
{
internal class ProfileItemMetadata
{
private ProfileItemMetadata()
{
}
public string Description { get; set; }
[Key]
public int ItemID { get; set; }
[Include]
public ICollection<ProfileValue> ProfileValues { get; set; }
public string Type { get; set; }
}
}
此外,ProfileItem 和 Profile Value 都具有向客户端公开各自实体的 CRUD 方法。目前,我只是试图获取配置文件值的查询,并带着他们各自的 ProfileItem 来到客户端。调用 db.ProfileValues.Include("ProfileItem") 并对此执行 ToList 给了我这两个实体,只是似乎 RIA 未能在某个地方包含它们。
我看过:
甚至这里引用的所有内容: EF4 中的 Include() using RIA Services Domain Service not loading!
当前技术:
Silverlight 5、Entity Framework 5(DbContext,不是 ObjectContext)和 Ria Services SP2
欢迎所有和任何想法!
编辑 这里是 RIA 服务调用:
[Query(IsDefault = true)]
public IQueryable<ProfileValue> GetProfileValues()
{
return db.ProfileValues.Include("ProfileItem");
}