Linq查询中类型的转化以及序列化XXX对象时检测到循环引用

 

我有一个Studen类型,有5个字段,num,name,birth,idcard,classId,我们一般写Linq查询的时候就是这样写

List<Student> stus =  from Student s in dc.Student select s;

 

那么其实我只想用其中的两个字段num,name,我就需要写一个dto

StudentDto: num,name

List<Student> stus =  from Student s in dc.Student

                           select newStudentDto

                           {

                                Num = s.Num,

                                Name = s.Name

                           };

 

我们注意到classId属于外键,表示一种关系。这个字段的存在,使我们在序列化这个列表对象时(ajax操作时拿到json数据),会报错——序列化XXX对象时检测到循环引用。

 

这个时候我们就需要利用DTO了,取出要用的字段即可。

 

List<Student> stus =  from Student s in dc.Student

                           select newStudentDto

                           {

                                Num = s.Num,

                                Name = s.Name

                           };

 

 JavaScriptSerializer jss = new JavaScriptSerializer();
 Response.Write(jss.Serialize(stus));
 Response.End();

 

前台就可以用$.getJSON接收数据了。

时间: 2024-11-02 00:03:01

Linq查询中类型的转化以及序列化XXX对象时检测到循环引用的相关文章

序列化类型 System.Data.Entity.DynamicProxies 的对象时检测到循环引用

序列化类型 System.Data.Entity.DynamicProxies 的对象时检测到循环引用   详细错误内容为: 不应为数据协定名称为BlogArticle_8F5767B5CA34AC0BBFE8F59DB428937035A9A77CC2917A318A2808A379392602: http://schemas.datacontract.org/2004/07/System.Data.Entity.DynamicProxies"的类型"System.Data.Enti

Entity Framework对象序列化出错:检测到循环引用

ASP.NET MVC3中尝试将Entity Framework对象序列化输出,结果出错,代码如下:  代码如下 复制代码  public ActionResult Index() {     testContext context = new testContext();     var data = context.People;     return Json(data, JsonRequestBehavior.AllowGet); } 错误信息:  引用内容 序列化类型为"System.

序列化存储对象时用什么参数?求指教。

问题描述 FileStreamfs=newFileStream(乱码文件,FileMode.Create);//定义文件流BinaryFormatterbf=newBinaryFormatter();//二进制方式bf.Serialize(fs,?);//序列化存储对象//'?'里面存储什么 解决方案 解决方案二:'?'就是你要系列化的对象阿:)解决方案三:那个对象是序列化对象,不知道用那个对象,这个我很纠结啊!解决方案四:既然"不知道用那个对象",你还犯得着系列化它吗?解决方案五:里

对象序列化存放-C# 序列化的对象 如何能存放到数据库中?

问题描述 C# 序列化的对象 如何能存放到数据库中? 我声明一个可序列化的对象 ,如何能讲对象存到数据库的字段中?存放后怎么读? 解决方案 参考:http://wenku.baidu.com/link?url=cIlCf5XteiSXDPFFX7mEJyf7uCBuy1I_UxksFGcfd7AKRrSLdPYv5NHLZtoyhQCc67Nl2bq9rRrrsP5Lq7UiTtgR1ESHL9mlTawT0t8jULC http://blog.csdn.net/chenbin520/artic

LINQ查询介绍

查询是一种从数据源检索数据的表达式.查询通常用专门的查询语言来表示 .随着时间的推移,人们已经为各种数据源开发了不同的语言:例如,用于关系 数据库的 SQL 和用于 XML 的 XQuery.因此,开发人员不得不针对他们必须支 持的每种数据源或数据格式而学习新的查询语言.LINQ 通过提供一种跨各种数 据源和数据格式使用数据的一致模型,简化了这一情况.在 LINQ 查询中,始终 会用到对象.可以使用相同的基本编码模式来查询和转换 XML 文档.SQL数据库.ADO.NET 数据集..NET 集合

深度看点Linq查询与性能解析

众人对LINQ查询持有不同的态度,有的说容易实现,有的说难操作,那到底是什么样子呢,笔者特地为此做了一个Linq查询与性能分析,请看下文吧. Orcas(VS2008&Framework3.5)给我们带来了很多令人兴奋的新特性,尤其是LINQ的引进,可以说方便了一大批开发人员和框架设计人员.过去,当我们使用O/RMapping的一些框架时,最担心的应该是复杂的查询和数据库操作的性能问题,那么LINQ在这个方面给我们带来了什么呢?从LINQ查询开始说起吧. 一:LINQ查询: 一个项目中,对数据库

ADO.NET实体数据模型多表连接查询中的实体键问题

ADO.NET是.NET与数据库互操作的核心,而ADO.NET实体数据库则增强了.NET应用程序与数据库的互联能力,通过ADO.NET实体数据模型我们可以很方便的与底层数据库进行强类型的数据互操作.大大的方便了设计人员,从而也提高了数据库操作的安全性.最近在使用到Siverlight的领域数据服务时遇到一个很特别的问题[在应用程序中的结果和数据库的结果不一样],经过反复的试验,终于找到了问题的根源,那就是ADO.NET实体数据模型依赖于实体键,它的查询会生成实体键的唯一结果集. 现在来看看具体的

Linq语法中,where 条件写一个&amp;amp;amp; 和 两个&amp;amp;amp; 有什么区别吗?

问题描述 如题 解决方案 解决方案二:这里的&应该就是C#的语法吧.&按位与&&逻辑与解决方案三:&&对应sql语句中是and如select*fromuserwhereu.Id=1andu.name='Tim'linq:fromuinuserwhereu.Id==1&&u.name=="Tim"一个&:按位与linq语句中一般用不到吧...解决方案四:引用2楼的回复: &&对应sql语句中是and如

block使用小结、在arc中使用block、如何防止循环引用(zz)

标签:  __block   __weak   arc   self   cfgetretaincount 分类: iOS zz from http://www.cnbluebox.com/?p=255 引言 使用block已经有一段时间了,感觉自己了解的还行,但是几天前看到CocoaChina上一个关于block的小测试主题: [小测试]你真的知道blocks在Objective-C中是怎么工作的吗?,发现竟然做错了几道, 才知道自己想当然的理解是错误的,所以抽时间学习了下,并且通过一些测试代