Linq To Sql进阶系列 -目录导航



博客园
CLR基础研究团队
|
CLR团队精品系列|C# 3.0专题

[Linq To Sql进阶系列]

目录导航


 

1 Linq To Sql进阶系列(一)-从映射讲起

本系列,或多或少,直接或间接依赖入门系列知识。但,依然追求独立成章。因本文作者水平有限,文中错误难免,敬请读者指出并谅解。本系列将会和入门并存。

2 Linq To Sql进阶系列(二)M:M关系

Linq To Sql进阶系列(一) 一文中,我们谈到了数据库中的两种基本关系1:M 1:1. 而现实世界中,还有一种M:M 的关系。比如,一个老师可以有多个学生,而一个学生也可以有多个老师。老师和学生的关系就是多对多的关系。这些关系在数据库中是如何反映的呢

3 Linq To Sql进阶系列(三)CUDLog

CUD就是Create, Update, Delete。在别人都写过了后,还有什么是新鲜的呢?如果,碰到了数据库自增型字段,在插入数据后,需要你自己去获取自增的值吗?

4 Linq To Sql进阶系列(四)User Define Function

Linq To Sql如何提供对User Define Function的支持的呢?如果,用户想使用数据库自定义的函数该怎么办呢?本文将详细为你阐述。

5 Linq To Sql进阶系列(五)Store Procedure

Store Procedure,存储过程。就先谈谈它与udf的区别吧。

6 Linq To Sql进阶系列(六)用object的动态查询与保存log

动态的生成sql语句,根据不同的条件构造不同的where字句,是拼接sql 字符串的好处。而Linq的推出,是为了弥补编程中的 Data != Object 的问题。我们又该如何实现用object的动态查询呢? 

7 Linq To Sql进阶系列(七)动态查询续及CLRSQL在某些细节上的差别

在上面一篇文章Linq To Sql进阶系列(六)中,我们提到了使用object的动态查询。本文在上文的基础上,再做更加深入的引申。同时修正上文中一些不妥的地方。提供相关源代码下载

[公告]

CLR团队公告】CLR团队精品系列活动公告邀请函团队纲领

posted @ 2007-10-15 15:20 Tom Song 阅读(16813) 评论(15) 编辑 收藏

 回复 引用 查看   
#1楼2007-10-18 16:50 | 静水≈深流      
麻烦你帮忙解决几个关于linq to sql 的问题!!!

http://www.cnblogs.com/RunDeep/archive/2007/10/18/929251.html

 回复 引用 查看   
#2楼[楼主]2007-10-22 21:55 | Tom Song      
1.缓存问题。
以往的做法是吧,数据库查询的信息,缓存在Hashtable中,现在想在 from u in db.User select u 去数据库查询之前去,系统的缓存中,看看,记录是否已经在缓存中存在。不知道大家怎么做的。
2.where查询条件
var test = from c in db.TestTables where c.ID == "1" select c 当这条记录不存在时,用 test.First() 法方时抛出异常。要确定TestTables 是否被实例化了,必须要补捉异常。用 test.FirstOrDefault()法方。可以通过判断 对象 test != null 来判定test对象是否被实例化了。是否有更好的方法来判定test对象是否被实例化了。
3. 更新数据
更新数据,首先要在 DataContext 中先去数据库select实例化该对象,然后再修改,在提交修改。如果通过别的方法实例化了对象,附加(Attach)到 db.TestTables.Attach(t,true)抛出异常“An entity can only be attached as modified without original state if it declares a version member or does not have an update check policy.”用db.TestTables.Attach(t)没有反应。如果我想通过其他方法实例化了对象,然后在更新到数据库中,怎么做?
4.默认值
LINQ中生成表的时候怎么样使用默认值。

http://www.cnblogs.com/RunDeep/archive/2007/10/18/929251.html

 回复 引用 查看   
#3楼[楼主]2007-10-22 22:00 | Tom Song      
@静水≈深流
1, Linq 有自己的缓存,这个无须你去多设置。
2,你的方法很对,而且是最好的.
3,这个需要在主键上设置IsVersion,Attach方法最近做了改动,梢后会提。
4,目前,Linq To Sql对默认值的处理和Sql 有出入,在linq to sql中,要么,你就一直用默认值,要么就自己赋值.如果用默认值,在影射上加IsDbGenerated 而后,你就不能再给这个字段赋值.

 回复 引用 查看   
#4楼2007-10-23 15:19 | 静水≈深流      
先谢谢 LZ
3,更新 IsVersion 的设置以前也试过
在主键上设置IsVersion = true 时
UPDATE SET 列=@变量 WHERE ID = @ID AND ID = @ID
但是用新增一个实体的时候就有问题了,(具体什么错误记不得了,回去看一下测试)
主键上设置IsVersion = false
UPDATE SET 列=@变量 WHERE ID = @ID AND 列=@变量 AND ... 所有的列

总感觉这个UPDATE 不怎么合理
在 NBear 中也有 附加和分离 感觉那种做法好多了

 回复 引用 查看   
#5楼2008-11-29 10:23 | Flouse      
LZ,我遇到了个莫名其妙的问题,前到求助!

http://topic.csdn.net/u/20081129/09/8c28120a-7349-4ded-a958-51ede75633c5.html

 回复 引用 查看   
#6楼2009-04-09 22:45 | stg609      
这几个系列很不错!支持
 回复 引用 查看   
#7楼2009-09-18 16:38 | 5207      
LinqToSql如何能免在N层结构中应用起来?客户端提交的实体无法批量更新?比如我提交了一个IList<t_Users> 这样的一个实体列表,里面可能有新增,修改、删除三种情况,有啥办法可以让DataContext识别出来?是否只有在实体类上扩展一个属性用于标识出来?
 回复 引用 查看   
#8楼2010-07-27 10:49 | C#新手[新手]      
你好,我也遇到一个linq的问题,请教一下,谢谢!
http://topic.csdn.net/u/20100723/11/7ce0a49d-bf86-4f07-bdaf-820426ba29f0.html

 回复 引用 查看   
#9楼2010-07-27 10:50 | C#新手[新手]      
你好,我也遇到一个linq的问题,请教一下,谢谢!

 回复 引用 查看   
#10楼[楼主]2010-07-28 20:37 | Tom Song      
你的问题好像和linq无关吧?可以调试下, 看看list里面是否有数据?
 回复 引用 查看   
#11楼2010-07-29 09:07 | C#新手[新手]      
数据有,但是就是不能在rdlc中显示!就是老提示我没有dataset1数据集!
 回复 引用 查看   
#12楼2010-07-29 09:08 | C#新手[新手]      
引用Tom Song:你的问题好像和linq无关吧?可以调试下, 看看list里面是否有数据?

你的问题好像和linq无关吧?可以调试下, 看看list里面是否有数据?
我直接连接数据库,不用那个web service就没问题

 回复 引用 查看   
#13楼[楼主]2010-07-29 21:33 | Tom Song      
连web service就不是那么简单了。 首先, 你要考虑的是,数据集需要序列化成xml传过来,需要那些entity支持序列化。传过来后, 你要从xml到实体类对象的反序列化。也就是在client端, 需要知道是那些entity。