在用Ef的时候,也许经常会遇到循环引用的错误. 下面提供解决办法.(不是Json.Net,如果是Json.Net可以给导航属性通过增加特性标签来解决该问题) ef大多数问题,可以通过ToList()来解决.当这个问题解决不来的时候,你可以选择下面这种方法. IQueryable<TopicInfo> topicInfos = _topicInfoService.GetPagedEntitesQueryable(pageSize, pageIndex, wherelambda, t =>…
能看到这个标题 ,我就用解释原因,网上很多,我只给大家一个解决方案会: public <#=code.Escape(entity)#> ToPOCO() { return new <#=code.Escape(entity)#>() { <# if (simpleProperties.Any()) { foreach (var edmProperty in simpleProperties) { #> <#=codeStringGenerator.Property…
原因:在EF实体中,两个互为主外键关系的实体类的导航属性相互引用. 解决方法一:删除一个不需要的类的导航属性 方法二:使用DTO模型 方法三:直接返回需要的属性(不能包括相互引用的属性)…
发生异常的代码如下: 1: public JsonResult GetSaleByNo1(string id) 2: { 3: SaleMvcUI.Helper.saleDBEntities saleDB = new Helper.saleDBEntities(); 4:  5: var saleF = (from sf in saleDB.t_saleform 6: where sf.f_saleform_no == id 7: select sf).First(); 8:  9: retur…
Newtonsoft.Json.dll 或者通过->工具->库程序包管理工具->NuGet管理包->联机 输入Newtonsoft或者json.net Newtonsoft.Json是可以的: context.Response.ContentType = "text/plain"; BooksService service = new BooksService(); List<Books> list=service.GetAll().Take(5).…
/// 产品列表展示 /// </summary> /// <returns></returns> ) { //获得所有组别 Galasys_IBLL.IT_BIZ_PRODUCT_GROUPService iT_BIZ_PRODUCT_GROUPService = new Galasys_BLL.T_BIZ_PRODUCT_GROUPService(); var t_BIZ_PRODUCT_GROUPs = iT_BIZ_PRODUCT_GROUPService.Lo…
学习 EF Code First+MVC 时遇到了在请求JsonResult时出现 序列化类型 System.Data.Entity.DynamicProxies 的对象时检测到循环引用 的异常,原因是实体之间有关联关系,在序列化这些相关的 数据对象的时候,产生无限循环引用的现象. Example: public class CollegeInfoModel { public Guid CollegeId { get; set; } [Display(Name = "学院")] pub…
MVC4 EF中将数据表外键引用的是自身,转换成Json时,总是提示错误:“序列化类型为....的对象时检测到循环引用.”: 解决办法: 把要序列化的对象转为匿名对象去掉导航属性,如下 :本来是var item=db.newsColumns.Find(id),但提示循环引用,所以改写成下面形式var item=db.newsColumns.Select(x=>new {x.id,x.name,x.parentId}).Where(x=>x.id==id). [HttpGet] public J…
这是因为EF外键引起的序列化问题. 解决方案: context.Configuration.ProxyCreationEnabled = false; 这里我用的是一个基类控制器用于被继承 返回EF实例前加上这段代码就可以了 //用于被继承 public class BaseController : Controller { public CucuCarEntity db { get { //从当前线程中获取该对象 CucuCarEntity db = CallContext.GetData("…
在使用ajax调用web services时,正好返回的类型为datatable,想用通过json方式直接解析,但调用后,得到如下错误: 序列化类型为“System.Reflection.Module”的对象时检测到循环引用 经过查找博客,通过如下两步可以解决该问题: (1)引入Microsoft.Web.Preview.dll库 下载地址:http://download.csdn.net/detail/zlq861016/7235615 (2)在web.config中加入如下内容,位置为与sy…
在MVC中返回JSON时出错,序列化类型为“System.Data.Entity.DynamicProxies.Photos....这个会的对象时检测到循环引用. public ActionResult GetSdirsbyFdirid(int id) { // db.Configuration.LazyLoadingEnabled = false; db.Configuration.ProxyCreationEnabled = false; List<Seconddirectory> lis…
用MVC+EF做简单查询时,返回json格式数据出现问题 原代码: public ActionResult JSon({ NorthwindEntities db = new NorthwindEntities(); Employees per = db.Employees.Where(u => u.EmployeeID == ).FirstOrDefault(); return Json(per, JsonRequestBehavior.AllowGet); } 报错: 个人记录最简单而行之有…
定义一个继承JavaScriptConverter的子类 public class DataTableConverter : JavaScriptConverter { /// <summary>序列化</summary> public override IDictionary<string, object> Serialize(object obj, JavaScriptSerializer serializer) { DataTable dt = obj as Da…
接上篇的问题,给出我自己的解决方案. 同时推荐要学习MVC的可以参考下<ASP.NET MVC4 框架揭秘>. 首先,要自定义JSonResult,就要明白MVC中 JsonResult的定义.源码要自己查了,这里就不罗嗦了. 有一点要知道的就是MVC中的JsonResult是通过JavascriptSerializer(System.Web.Scripts.Serialization.JavaScripteSerializer,要添加System.Web.Extensions.dll)来实现…
解决方案: 加上 db.Configuration.ProxyCreationEnabled = false;这句话搞定~…
网上查了一通都是在web.config中配置 System.Data.Entity, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089” 无效 解决方案到  C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.0 目录拷贝一份System.Data.Entity.dll 到网站bin 目录就好了 编译错误…
1.类定义: public class Student { public int ID { get; set; } public string Name { get; set; } //[XmlIgnore] public Grade Grade { get; set; } } public class Grade { public int GradeID { get; set; } public string GradeName { get; set; } public List<Studen…
1.定义类 public class Student { public int ID { get; set; } public string Name { get; set; } //[XmlIgnore] public Student StudentInfo { get; set; } } 2.执行序列化操作,如果内部对象引用自己,xml序列化抛出异常“检测到循环引用” Student stu = new Student(); stu.ID = ; stu.Name = "张三";…
DateTime类型数据格式问题 问题 在使用ASP.NET MVC 在写项目的时候发现,返回给前端的JSON数据,日期类型是 Date(121454578784541) 的格式,需要前端来转换一下才能用来使用. C#对象属性名称转换成JSON自动转成“驼峰命名法” 问题 在C#中推荐的属性命名方式是“帕斯卡命名法”[首字母大写]但是在前端推荐命名方式为“驼峰命名法”[首字母小写],这样如果直接序列化C#对象,返回的属性就是大写的了 MVC 默认的返回JsonResult在序列化有循环引用对象时…
在做MVC项目时,难免会遇到Json序列化循环引用的问题,大致错误如下 错误1:序列化类型为“...”的对象时检测到循环引用. 错误2:Self referencing loop detected for property '...' with type '...'. Path '[0].x[0]'. 以上错误是因为数据库表关系引起的,比如一对一或多对多,如图: EF里面是这样的,如图: 解决方法: 步骤1: -引用JSON.NET 步骤2: -引用Newtonsoft.Json 步骤3: -J…
1.Wcf数据契约序列化,使用的类DataContractSerializer 默认如果类不指定[DataContract],则序列化类的所有字段,并且在出现循环引用的时候回抛出异常,服务终止 msdn文档说明:https://msdn.microsoft.com/library/system.runtime.serialization.datacontractserializer.aspx /* * Wcf 数据契约序列化使用“DataContractSerializer”,底层是xml序列化…
1.类的定义 /// <summary> /// 学生信息 /// </summary> [Serializable] public class Stu { /// <summary> /// 学生姓名 /// </summary> public string Name { get; set; } /// <summary> /// 学生的老师 /// </summary> public List<Teacher> Tea…
1..Net开源Json序列化工具Newtonsoft.Json中提供了解决序列化的循环引用问题: 方式1:指定Json序列化配置为 ReferenceLoopHandling.Ignore 方式2:指定 JsonIgnore忽略 引用对象 实例1,解决MVC的Json序列化引用方法: step1:在项目上添加引用 Newtonsoft.Json程序包,命令:Insert-Package Newtonsoft.Json step2:在项目中添加一个类,继承JsonResult,代码如下: ///…
概念端类型“xxx”中的成员“ID”的类型“Edm.Decimal”与对象端类型“xxx”中的成员“ID”的类型“System.Int64”不匹配 使用EF实体模型映射之后将edmx中xml映射关系中的字段类型修改为long后提示上述错误,所以,要解决上述问题,则需要还原原来的字段类型,如果忘记,则需要删除模型,重新映射…
通过前两章Lodging和Destination类的演示,大家肯定基本了解Code First是怎么玩的了,本章继续演示一些很实用的东西.文章的开头提示下:提供的demo为了后面演示效果,前面代码有些是注释了的,请按照文章讲解的顺序先后释放注释并运行查看效果. I.EF里Guid类型数据的自增长 现在新添加一个Trip旅行类: /// <summary> /// 旅行类 /// </summary> public class Trip { public Guid Identifie…
今天在VS工程当中引入一个组件,编译的时候出现警告, “MoveFile”: 类型库“XXX.dll”中的标识符已经是宏:使用“rename”限定符.虽然只是一个警告,但看着实在不爽,更重要的是,警告在某些情况下,可能正是bug的来源,并且这类bug往往非常难以定位.废话不多话,下面来解决问题. 看编译器给出的提示,是告诉我们,类型库当中的符号和系统符号有重名,同时也给出了解决方法,就是使用rename.怎么个rename法呢?其实很简单,我们在导入类型类的时候,直接#import语句后面,通过…
导航目录: Newtonsoft.Json 概述 一:Newtonsoft.Json 支持序列化与反序列化的.net 对象类型:    二:C#对象.集合.DataTable与Json内容互转示例: 三:C#对象转换Json时的一些高级(特殊)设置: Json.net 序列化程序会将.Net 值转换为json值,表格中是支持转换的对象类型: .net 对象类型 转换后的Json 类型 IList, IEnumerable, IList<T>, Array,datatable json数组 ID…
[100分]紧急求助:LinQ下使用IQueryable<T>如何将返回类型<T>使用匿名类型 问题描述如下:我有一个方法如下:public IQueryable DissensionList(Guid guid)    {        var p = from d in db.T_民事调解 where (d.社区Guid == guid) select new {序号=d.ID,d.纠纷甲方,d.纠纷乙方,d.调解人,d.调解时间,d.纠纷类别 };        return…
lua序列化 支持key类型为string, number 支持value类型为string, number, table, boolean 支持循环引用 支持加密序列化 支持loadstring反序列化 使用示例 , b = } , d = , t} t.rt = g local ser_str = ser(g) local unser_table = loadstring(ser_str)() 原理详解 采用递归序列化表的方式实现,并且支持循环引用.循环引用支持实现思路参考了云风的序列化.先…
以前一直没搞懂为什么C#在做对象序列化时(Json序列化,XML序列化等)有时候会出现循环引用的问题,下面写了个例子,类People有一个属性引用了类Child,而类Child也有一个属性引用了类People,并且两个属性的get访问器中都会new一个彼此类型的对象,这样在访问People类的Child属性的时候就会new一个Child对象,在访问Child类的People属性的时候又会new一个People对象.所以C#序列化方法在序列化People类的Child属性时又会去序列化Child属…