MonoRail和Linq To SQL的兼容性问题
摘要:今天无意中发现的一个兼容性问题。如果你使用了Monorail+Linq进行开发,这个问题很值得注意。我在项目中使用Linq内置的OnXXXChanged/OnXXXChanging进行数据有效性验证,比如partialvoidOnTopicChanging(stringvalue){if(!value.IsLengthIn(1,100))thrownewDataException("主题不符合要求...
阅读全文
使用LINQ进行多表操作(二)
摘要:1:M或者M:M关系的多表操作 表结构如下 直接写表达式 //正常选取 var user = context.Users.Where(p => p.UserID == 10300).Select(p => new {p, p.UserTags}) //带条件选取 var user = context.Users.Where(p => p.UserID == 10300).Se...
阅读全文
使用LINQ进行多表操作(一)
摘要:有时候我们需要对多张数据表进行一次性的Select操作。目前就我所知的操作方法有三种:1.直接写表达式;2.使用LoadOption选项;3.使用Join语句。那么,这三种语句用哪一种好呢?让我们来做一个小小的研究。。呱呱。。 1:1关系的多表操作 表结构如下 首先是测试取全记录的情况(也就是取所有字段) 直接写表达式 var user = context.Users.Where(p...
阅读全文
使用LINQ分页时需要注意的一个细节
摘要:昨天在用LINQ写分页的时候碰到一个很奇怪的问题:翻页的时候,有的数据会莫名其妙地消失,查了半个多小时才发现问题所在,其实是一个很细节的地方。 数据表如下: LINQ分页的实现是: var articles = context.Articles.Skip(startRecord).Take(pageSize); 当pageSize不为1时,得出的结果总是错的。用Profiler查...
阅读全文