您的位置:知识库 » 数据库

走进Linq-Linq to SQL How do I(3)

作者: 横刀天笑  来源: 博客园  发布时间: 2008-09-23 19:25  阅读: 8243 次  推荐: 0   原文链接   [收藏]  

系列文章导航:

走进Linq--Linq横空出世篇

走进Linq-辉煌的背后

走进Linq-Linq大观园

不能不说的C#特性-对象集合初始化器

不能不说的C#特性-匿名类型与隐式类型局部变量

不能不说的C#特性-扩展方法

不能不说的C#特性-匿名方法和Lambda表达式

不能不说的C#特性-迭代器(上)及一些研究过程中的副产品

不能不说的C#特性-迭代器(下),yield以及流的延迟计算

走进Linq-Linq to Objects(上)基础篇

走进Linq-Linq to Objects(下)实例篇

走进Linq-Linq to SQL感性认识篇

走进Linq-Linq to SQL How do I(1)

走进Linq-Linq to SQL How do I(2)

走进Linq-Linq to SQL How do I(3)

走进Linq-How do I(4)拾遗补零篇第一节

走进Linq-Linq to SQL源代码赏析 Table的获取过程

走进Linq-Linq to SQL源代码赏析之Provider的初始化

走进Linq-Linq to SQL源代码赏析,通过Linq to SQL看Linq


实际上我们可以看看,这个AutoSync是如何影响Linq to SQL的行为的(打开前面我们曾经建的那个博客园的例子,如果你没有创建一个强烈建议你回到前几篇按照那里的步骤新建)

我们执行一下对Post的插入:

DataContext dbContext = new DataContext(ConfigurationManager.ConnectionStrings["CnBlogs"].ConnectionString);
dbContext.Log
= Console.Out;

var post
= new Post {

BlogId
= 1,

Title
= "Linq to SQL How do I(3)",

Body
= "废话一堆",

};
dbContext.GetTable
<Post>().InsertOnSubmit(post);
dbContext.SubmitChanges();

 

看看生成的SQL代码:

在insert的代码下面,我们还会看到一个select的代码,将postid和createdate给查询回来,但我们并没有执行查询操作啊,原来这就是AutoSync在使坏,在默认的时候IsDbGenerated为true的列是被会查出来返回的。为了检查一下说的是不是对的,我将Post的Title属性修改一下:

[Column(AutoSync=AutoSync.Always)]public string Title { get; set; }

然后再执行上面 插入代码,看看生成的SQL又将如何呢:

呵呵,生成的select语句也将Title给查回来了。

现在应该明白这个AutoSync的意义了吧,你可以自己一一试验。

0
0
标签:linq objects

数据库热门文章

    数据库最新文章

      最新新闻

        热门新闻