我正在开发一个带有 Linq to SQL 数据库上下文的 ASP.NET 动态数据网站,我有一个问题。在我的一个表 ARReports 中,存在一个包含原始 XML 数据的列,我可以将其反序列化为 ReportDetails 对象,以及其他数据,例如 EditedBy、ReleaseDate 和其他字段。
ReportDetails 有几个公共属性,我想在我的自定义 Edit.aspx 页面上公开它们。
我的目标是:当用户导航到 Edit.aspx 页面时,我希望他们能够编辑 ARReports 行和 ReportDetails 的公共属性,所有这些都是原始类型。然后当它们更新时:将 ReportDetails 对象序列化回 XML 并更新表中的该字段。
无论如何我可以说,在 ReportDetails 类型的 ARReport 类(Linq to SQL 类)中创建一个属性,并将该类脚手架放入 Edit.aspx 页面?也许看起来像这样:
public partial class ARReport
{
private ReportDetails _details;
public ReportDetails Details
{
get
{
if (_details == null)
_details = ReportDetails.DeSerialize(this.RawXML);
return _details;
}
set
{
this.RawXML = ReportDetails.Serialize(_details);
}
}
public class ReportDetails
{
public String Owner {get; set;}
public DateTime LastEdit {get; set;}
//...etc...
public static String Serialize(ReportDetails report)
{
// serialization code
}
public static ReportDetails DeSerialize(String rawXML)
{
// deserialization code
}
}
我希望有一些属性和/或技巧的组合可以应用于类和属性以实现我正在寻找的东西,但到目前为止,严格的谷歌搜索还没有提出任何解决方案。我希望这不会太混乱。我感谢任何帮助或见解。