问题描述
|
我正在使用asp.net,并将会话配置为存储在sql Server中。我的项目有很多对象和几个linq-to-sql dbml。我已经将它们配置为具有单向序列化,并且还进行了一些自定义更改。
当我运行应用程序时,我的application_error事件处理程序中不断出现此错误
程序集\'App_Code.thzd8p2j,Version = 0.0.0.0,Culture = neutral,PublicKeyToken = null \'中的类型\ Data.Karaoke.spcwp_SelUserPrivilegesResult \未标记为可序列化。
从错误我不确定它是否来自dbml.designer.cs文件,这是代码:
[Function(Name=\"dbo.spcwp_SelUserPrivileges\")]
public ISingleResult<spcwp_SelUserPrivilegesResult> spcwp_SelUserPrivileges([Parameter(Name=\"IDcwpUser\",DbType=\"Int\")] System.Nullable<int> iDcwpUser)
{
IExecuteResult result = this.ExecuteMethodCall(this,((MethodInfo)(MethodInfo.GetCurrentMethod())),iDcwpUser);
return ((ISingleResult<spcwp_SelUserPrivilegesResult>)(result.ReturnValue));
}
和
[DataContract()]
public partial class spcwp_SelUserPrivilegesResult
{
private int _IDTypecwpModule;
private string _TypeKey;
private bool _Security;
public spcwp_SelUserPrivilegesResult()
{
}
[Column(Storage=\"_IDTypecwpModule\",DbType=\"Int NOT NULL\")]
[DataMember(Order=1)]
public int IDTypecwpModule
{
get
{
return this._IDTypecwpModule;
}
set
{
if ((this._IDTypecwpModule != value))
{
this._IDTypecwpModule = value;
}
}
}
[Column(Storage=\"_TypeKey\",DbType=\"VarChar(10) NOT NULL\",CanBeNull=false)]
[DataMember(Order=2)]
public string TypeKey
{
get
{
return this._TypeKey;
}
set
{
if ((this._TypeKey != value))
{
this._TypeKey = value;
}
}
}
[Column(Storage=\"_Security\",DbType=\"Bit NOT NULL\")]
[DataMember(Order=3)]
public bool Security
{
get
{
return this._Security;
}
set
{
if ((this._Security != value))
{
this._Security = value;
}
}
}
}
如何确定错误的来源?
或错误是什么意思?
我不确定如何解决或寻找解决问题的方法。
解决方法
看来您正在应用程序中运行某种类型的序列化。与DataContract序列化不同的序列化。
创建一个新文件并输入以下内容:
[Serializable]
public partial class spCWP_SelUserPrivilegesResult { }
如果从数据库刷新dbml文件,则可以在一个单独的文件中执行此操作。
, 不知道是否适用于SQL Server CLR,但通常使用.Net,我会建议您将代码更新为:
[Serializable()]
[DataContract()]
public partial class spCWP_SelUserPrivilegesResult
{
...