在实体框架中保存ViewState出错

本文关键字:ViewState 出错 保存 实体 框架 | 更新日期: 2023-09-27 18:06:48

我在。net实体框架4.0工作我使用viewstate来保存一个实体。我也序列化了那个实体。但是当我尝试将数据保存到viewstate时,得到这个错误:

Microsoft JScript runtime error: Sys.WebForms.PageRequestManagerServerErrorException: Error serializing value 'System.Collections.Generic.List`1[Pc.PrecisionCare2.ModelTypes.Medication]' of type 'System.Collections.Generic.List`1[[Pc.PrecisionCare2.ModelTypes.Medication, PrecisionCare2ModelTypes, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]].'

在实体框架中保存ViewState出错

也许这对任何人都有帮助。我想自己在Viewstate中序列化一个实体,但找不到一个好的解决方案(XMLSerialization, Byte Serializing, DataContract)。我发现我可以"扩展"代码生成的类(它们是局部的)并使其可序列化。

例如这是一个。net代码生成的实体:

//------------------------------------------------------------------------------
// <auto-generated>
//     This code was generated from a template.
//
//     Manual changes to this file may cause unexpected behavior in your application.
//     Manual changes to this file will be overwritten if the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------
namespace OAuthServerBroker.EF
{
    using System;
    using System.Collections.Generic;
    public partial class ResourceOwner
    {
        public ResourceOwner()
        {
            this.Grant = new HashSet<Grant>();
        }
        public System.Guid ResourceOwner_ID { get; set; }
        public string ResourceOwner_Username { get; set; }
        public virtual ICollection<Grant> Grant { get; set; }
    }
}

当我创建一个具有相同类名和命名空间的新类文件时,我可以使实体可序列化:)。

using System;
namespace OAuthServerBroker.EF
{
    [Serializable]
    public partial class ResourceOwner
    {
        public EntityState State { get; set; } //can even put into new properties
    }
}

希望这篇文章对大家有所帮助,因为这是一篇老文章。