VS2012中Database-first开发Web应用,老是报错序列化错误,真的求解!!
在下第一次发帖,各位多多包涵~我最近在学习Entity Framework框架
同时在做一个网上超市的小作业,要求
数据库已经存在
数据库: Microsoft SQL Server 2008
开发工具:VS2012
模式架构:MVC4 & Entity Framework Database-First
我现在已经向工程中添加了ADO.NET Entity Data Model,工程自动生成了edmx文件,然后我在Controller类当中添加了一个名为“BlankController”用来测试的ApiController,代码如下:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Net.Http;
using System.Web.Http;
using MySuperMarket.Models;
namespace MySuperMarket.Controllers
{
public class BlankController : ApiController
{
public OnlineMarketEntities db = new OnlineMarketEntities();
public IEnumerable<Client> GetClients()
{
return db.Client.Where(p=>p.CLID != 0);
}
}
}
之后我便开始运行项目,但是出来之后结果是这样的:
This XML file does not appear to have any style information associated with it.
The document tree is shown below.
<Error>
<Message>
An error has occurred.
</Message>
<ExceptionMessage>
The 'ObjectContent`1' type failed to serialize the response body for content
type 'application/xml; charset=utf-8'.
</ExceptionMessage>
<ExceptionType>
System.InvalidOperationException
</ExceptionType>
<StackTrace/>
<InnerException>
<Message>
An error has occurred.
</Message>
<ExceptionMessage>
不应为数据协定名称为“Client_8258663FD2AFC77B2A97525EB9CA5AC173CC75D31938
FEB3D9C02506ECFB9F13:http://schemas.datacontract.org/2004/07/System.Data.
Entity.DynamicProxies”的类型“System.Data.Entity.DynamicProxies.Client_8
258663FD2AFC77B2A97525EB9CA5AC173CC75D31938FEB3D9C02506ECFB9F13”。请考虑使
用 DataContractResolver,或将任何未知类型以静态方式添加到已知类型的列表。例
如,可以使用 KnownTypeAttribute 特性,或者将未知类型添加到传递给
DataContractSerializer 的已知类型列表。
</ExceptionMessage>
<ExceptionType>
System.Runtime.Serialization.SerializationException
</ExceptionType>
<StackTrace>
在 System.Runtime.Serialization.XmlObjectSerializerWriteContext.SerializeAn
dVerifyType(DataContract dataContract, XmlWriterDelegator xmlWriter,
Object obj, Boolean verifyKnownType, RuntimeTypeHandle declaredTypeHandle,
Type declaredType) 在 System.Runtime.Serialization.
XmlObjectSerializerWriteContext.SerializeWithXsiType
(XmlWriterDelegator xmlWriter, Object obj, RuntimeTypeHandle
objectTypeHandle, Type objectType, Int32 declaredTypeID,
RuntimeTypeHandle declaredTypeHandle, Type declaredType) 在
System.Runtime.Serialization.XmlObjectSerializerWriteContext.
InternalSerialize(XmlWriterDelegator xmlWriter, Object obj, Boolean
isDeclaredType, Boolean writeXsiType, Int32 declaredTypeID,
RuntimeTypeHandle declaredTypeHandle) 在
WriteArrayOfClientToXml(XmlWriterDelegator , Object ,
XmlObjectSerializerWriteContext , CollectionDataContract ) 在
System.Runtime.Serialization.CollectionDataContract.WriteXmlValue
(XmlWriterDelegator xmlWriter, Object obj, XmlObjectSerializerWriteContext
context) 在 System.Runtime.Serialization.XmlObjectSerializerWriteContext.
WriteDataContractValue(DataContract dataContract,
XmlWriterDelegator xmlWriter, Object obj,
RuntimeTypeHandle declaredTypeHandle) 在
System.Runtime.Serialization.XmlObjectSerializerWriteContext.
SerializeAndVerifyType(DataContract dataContract,
XmlWriterDelegator xmlWriter, Object obj, Boolean verifyKnownType,
RuntimeTypeHandle declaredTypeHandle, Type declaredType) 在
System.Runtime.Serialization.XmlObjectSerializerWriteContext.
SerializeWithXsiTypeAtTopLevel(DataContract dataContract,
XmlWriterDelegator xmlWriter, Object obj,
RuntimeTypeHandle originalDeclaredTypeHandle, Type graphType) 在
System.Runtime.Serialization.DataContractSerializer.
InternalWriteObjectContent(XmlWriterDelegator writer, Object graph,
DataContractResolver dataContractResolver) 在
System.Runtime.Serialization.DataContractSerializer.
InternalWriteObject(XmlWriterDelegator writer, Object graph,
DataContractResolver dataContractResolver) 在
System.Runtime.Serialization.XmlObjectSerializer.
WriteObjectHandleExceptions(XmlWriterDelegator writer, Object graph,
DataContractResolver dataContractResolver) 在
System.Runtime.Serialization.DataContractSerializer.WriteObject
(XmlWriter writer, Object graph) 在
System.Net.Http.Formatting.XmlMediaTypeFormatter.<>c__DisplayClass7.
<WriteToStreamAsync>b__6() 在
System.Threading.Tasks.TaskHelpers.RunSynchronously(Action action,
CancellationToken token)
</StackTrace>
</InnerException>
</Error>
现在总的情况就是这样了。
这是我第一次用VS2012,第一次用EF,第一次用Database-First,出了问题之后,网上找了很多很多,可是实在不知道怎么办了,故来求助各位大虾,到底是什么问题?项目已经完全停滞了还望高人能略指点迷津!真心地感谢呐~~~~~ Entity Framework Database First C# ASP.NET XML --------------------编程问答-------------------- 请各位大虾赐教,lz在线等啊 --------------------编程问答-------------------- 解决.Net MVC EntityFramework Json 序列化循环引用问题.
解决.Net MVC EntityFramework Json 序列化循环引用问题. --------------------编程问答--------------------
嗯,先谢过,我马上去看看~
补充:.NET技术 , ASP.NET