C# 实体模型c的序列化#

C# 实体模型c的序列化#,c#,asp.net,entity-framework,serialization,entity,C#,Asp.net,Entity Framework,Serialization,Entity,我在序列化时经常会遇到这个错误,我不知道需要序列化哪个文件。 页面在一次加载时打开或关闭,而在另一次不加载时打开或关闭。 以下是我得到的错误: System.Web.HttpException(0x80004005):无法序列化会话 国家。在“StateServer”和“SQLServer”模式下,ASP.NET将序列化 会话状态对象,因此是不可序列化的对象或 不允许使用MarshalByRef对象。同样的限制也适用 如果中的自定义会话状态存储完成了类似的序列化 “自定义”模式。--> Syst

我在序列化时经常会遇到这个错误,我不知道需要序列化哪个文件。 页面在一次加载时打开或关闭,而在另一次不加载时打开或关闭。 以下是我得到的错误:

System.Web.HttpException(0x80004005):无法序列化会话 国家。在“StateServer”和“SQLServer”模式下,ASP.NET将序列化 会话状态对象,因此是不可序列化的对象或 不允许使用MarshalByRef对象。同样的限制也适用 如果中的自定义会话状态存储完成了类似的序列化 “自定义”模式。--> System.Runtime.Serialization.SerializationException:类型 '系统.数据.实体.动态验证.产品_CC06DC79809AC788823D74B88F94CCB7155ADCE697911AF73214FB8B5F2B2EB4' 在Assembly的EntityFrameworkDynamicProxies-Nop.BusinessLogic中, 版本=1.0.0.0,区域性=中性,未标记PublicKeyToken=null 可序列化。在 System.Runtime.Serialization.FormatterServices.InternalGetSerializationMembers(RuntimeType 类型)在 System.Runtime.Serialization.FormatterServices.GetSerializationMembers(类型 类型,StreamingContext)位于 System.Runtime.Serialization.Formatters.Binary.WriteObjectInfo.InitMemberInfo() 在 System.Runtime.Serialization.Formatters.Binary.WriteObjectInfo.InitSerializate(对象 obj,ISurrogateSelector代理选择器,StreamingContext上下文, SeroObjectInfoinit SeroObjectInfoinit,IFormatterConverter转换器, ObjectWriter ObjectWriter,SerializationBinder绑定器)位于 System.Runtime.Serialization.Formatters.Binary.ObjectWriter.Write(WriteObjectInfo objectInfo、NameInfo成员NameInfo、NameInfo类型NameInfo)位于 System.Runtime.Serialization.Formatters.Binary.ObjectWriter.Serializate(对象 图,标题[]inHeaders,\uu二进制编写器serWriter,布尔值fCheck)
在 System.Runtime.Serialization.Formatters.Binary.BinaryFormatter.Serializate(流 序列化流、对象图、头[]头、布尔fCheck)
在System.Web.Util.AltSerialization.WriteValueToStream(对象值, 二进制编写器)在 System.Web.Util.AltSerialization.WriteValueToStream(对象值, 二进制编写器)在 System.Web.SessionState.SessionStateItemCollection.WriteValueToStreamWithAssert(对象 值,二进制编写器)位于 System.Web.SessionState.SessionStateItemCollection.Serialize(BinaryWriter (作者)在 System.Web.SessionState.SessionStateUtility.Serialize(SessionStateStoreData 项目,流)在 System.Web.SessionState.SessionStateUtility.SerializeStoreData(SessionStateStoreData 项,Int32 initialStreamSize,字节[]和buf,Int32和长度,布尔值 压缩(已启用)在 System.Web.SessionState.SqlSessionStateStore.SetAndReleaseItemExclusive(HttpContext 上下文、字符串id、SessionStateStoreData项、对象锁定id、布尔值 新项目)在 System.Web.SessionState.SessionStateModule.OnReleaseState(对象 源,EventArgs(EventArgs)位于 System.Web.HttpApplication.SyncEventExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() 在System.Web.HttpApplication.ExecuteStep(IExecutionStep步骤, 布尔值(同步完成(&C))

所以基本上我认为实体模型有点问题,但我想知道如何序列化它。
提前感谢,Laziale

System.Data.Entity.DynamicProxies.Product(此类错误)

应该在类中添加[DataContract]属性,在类似的字段中添加[DataMember]

using System.Runtime.Serialization;
[DataContract]
public class Account
{
    [DataMember]
    public System.Guid ID { get; set; }
    [DataMember]
    public System.Guid AccountSubTypeID { get; set; }
    [DataMember]
    public Nullable<int> IndustryTypeID { get; set; }
}
使用System.Runtime.Serialization;
[数据合同]
公共类帐户
{
[数据成员]
public System.Guid ID{get;set;}
[数据成员]
public System.Guid accountsubsubscriptid{get;set;}
[数据成员]
公共可为空的IndustryTypeID{get;set;}
}

这是否包括在内?是否需要序列化整个实体?最好只将唯一ID存储在会话中,然后从数据库中检索实体本身。顺便问一下,
DataContractSerializer
是否可以处理对象?如果是这样,另一个选项是:使用
DataContractSerializer
进行序列化,并只存储数据协定序列化程序的输出+1。为什么需要这样做?这类错误通常是可以通过另一种方式正确完成的事情的症状。