【发布时间】:2011-02-01 12:49:56
【问题描述】:
我正在使用 RIA 服务开发 Silverlight 业务应用程序,该服务返回 POCO 实体(TaskTime 和 User)。 TaskTime 实体有一个与之关联的 User 实体。
我创建了一个域服务,它有一个查询函数 (GetTimesheet),它返回 TaskTime 实体的 IQueryable 集合,如果我不尝试获取关联的用户实体,它工作正常,但只要我包括'TaskTime' 实体中 'User' 属性上方的 [Include] 和 [Association] 属性我开始收到反序列化错误消息:
格式化程序在尝试反序列化消息时抛出异常 [...] InnerException 消息是“第 1 行位置 266 中的错误。元素”http://schemas.microsoft.com/2003/10/ Serilaization/Arrays:anyType' 包含 'http://schemas.datacontract.org/2004/07/Timesheets.Entities:User' 数据合约的数据。反序列化器不知道映射到该合约的任何类型。将相应的“用户”添加到已知类型列表中...'
它建议我使用“KnownTypes”属性,但我似乎找不到放置解决此错误的地方。
有没有人知道如何解决这个问题?我可以在 Silverlight 应用程序的“Generated_Code”中看到这两种类型似乎都已正确创建,并添加了 DataContract 属性等。
我的 POCO 实体的简化版本是:
public partial class TaskTime
{
[Key()]
public virtual int ID { get; set; }
public virtual int User_ID { get; set; }
[Include]
[Association("TaskTime_User", "User_ID", "ID", IsForeignKey=true)]
public virtual User User
{
get { return _user; }
set
{
if (!ReferenceEquals(_user, value))
{
var previousValue = _user;
_user = value;
FixupUser(previousValue);
}
}
}
}
public partial class User
{
[Key()]
public virtual int ID { get; set; }
public virtual string Name { get; set; }
}
【问题讨论】:
-
John - 我遇到了您的确切问题,您介意分享您的解决方法吗?
-
@Zein:如果您有问题提出并提供的解决方案对您不起作用,您应该提出一个新问题并将此问题链接作为参考。答案只是为了解决问题。
标签: silverlight silverlight-4.0 poco ria