当前位置:编程学习 > C#/ASP.NET >>

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 序列化循环引用问题. --------------------编程问答--------------------
引用 2 楼 geass 的回复:
解决.Net MVC EntityFramework Json 序列化循环引用问题.

解决.Net MVC EntityFramework Json 序列化循环引用问题.


嗯,先谢过,我马上去看看~
补充:.NET技术 ,  ASP.NET
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,