当前位置: 首页 > news >正文

魔站建站系统哪家好扬州网站开发公司电话

魔站建站系统哪家好,扬州网站开发公司电话,wordpress 重定向函数,设计师网站外网.NET深入实战系列—Linq to Sql进阶 最近在写代码的过程中用到了Linq查询#xff0c;在查找资料的过程中发现网上的资料千奇百怪#xff0c;于是自己整理了一些关于Linq中容易让人困惑的地方。 本文全部代码基于#xff1a;UserInfo与Class两个表#xff0c;其中Class中的U….NET深入实战系列—Linq to Sql进阶 最近在写代码的过程中用到了Linq查询在查找资料的过程中发现网上的资料千奇百怪于是自己整理了一些关于Linq中容易让人困惑的地方。 本文全部代码基于UserInfo与Class两个表其中Class中的UserId与UserInfo中的Id对应  本文唯一访问地址http://www.cnblogs.com/yubaolee/p/BestLinqQuery.html linq联合查询 内联查询 内联是一个实际使用频率很高的查询它查询两个表共有的且都不为空的部分 from user in UserInfo join c in Classes on user.Id equals c.UserId select new { user.UserName, user.Id, c.ClassName } 查询结果 对应的SQL语句 SELECT [t0].[UserName], [t0].[Id], [t1].[ClassName] FROM [UserInfo] AS [t0] INNER JOIN [Class] AS [t1] ON [t0].[Id] [t1].[UserId] 左联查询 from user in UserInfo join c in Classes on user.Id equals c.UserId into temp from c in temp.DefaultIfEmpty() select new { user.UserName, user.Id, c.ClassName }查询结果 对应SQL语句 SELECT [t0].[UserName], [t0].[Id], [t1].[ClassName] AS [ClassName] FROM [UserInfo] AS [t0] LEFT OUTER JOIN [Class] AS [t1] ON [t0].[Id] [t1].[UserId] 注意一下左联那个【temp】它其实是一个IEnumerable集合。所以我们可以得到到左联的另一种结果 from user in UserInfo join c in Classes on user.Id equals c.UserId into temp select new { user, temp } 查询结果为了更明确表达集合在Class表里特别加了一条记录所以class那边共有3条 对应SQL语句与左联的SQL基本一样但多了一个统计行数的列 SELECT t0.*, [t1].[Id] AS [Id2], t1.*, ( SELECT COUNT(*) FROM [Class] AS [t2] WHERE [t0].[Id] [t2].[UserId] ) AS [value] FROM [UserInfo] AS [t0] LEFT OUTER JOIN [Class] AS [t1] ON [t0].[Id] [t1].[UserId] 全联连是得到两个表的交叉结果在SQL中称为cross join这种联连方式得到的结果在没有过滤条件的情况下基本没什么用。看看即可代码如下 from user in UserInfo from c in Classes select new { user.UserName, user.Id, c.ClassName } 查询结果 对应SQL语句 SELECT [t0].[UserName], [t0].[Id], [t1].[ClassName] FROM [UserInfo] AS [t0], [Class] AS [t1] 合并Union 这种查询其实也很少用但在某些变态业务需求下会非常有用注意查询的结果。它是合并两个表相同列数的结果并且如果结果中有相同的行那么只取一行记录。 ( from userinfo in UserInfo select new { Id (System.Int32?)userinfo.Id, Name userinfo.UserName } ).Union ( from c in Classes select new { Id (System.Int32?)c.UserId, Name c.ClassName } ) 查询结果 对应SQL语句 SELECT [t0].[Id] AS [value], [t0].[UserName] FROM [UserInfo] AS [t0] UNION SELECT [t1].[UserId] AS [value], [t1].[ClassName] FROM [Class] AS [t1]Linq 分组查询 分组查询group by也是我们在实际项目中一个常用的操作查询操作如下 from c in Classes group c by c.UserId into temp select temp 查询结果   注意一下查询结果外层是一个我们常用的IQueryableT里面是一个类似Dictionary的K-V集合。简单点说Group返回的是一个集合的集合因此输出时需用双重循环。 我们在使用它的结果时应该这样调用 var result from c in _context.Classes group c by c.UserId into temp select temp; foreach (var c in result) { Console.WriteLine(c.Key); foreach (var citem in c) { Console.WriteLine(citem.ClassName); } } 实体增加字段处理 我在本文例子中的UserInfo实体类如下 public partial class UserInfo { public int Id { get; set; } public string UserName { get; set; } public string UserType { get; set; } public int Money { get; set; } }现在我想在该实体中类中添加一个属性。为了保持原实体类的纯洁。我添加一个新的partial类 public partial class UserInfo { /// summary /// 测试扩展属性 /// /summary public string UserExt { get { return UserName : UserType; } } } 然后我们用EF访问一下发现是可以访问的 但如果我们这样使用时 from user in _context.UserInfoes select new {user.Id,user.UserExt }; 会发现编译是没有问题的。但运行时会出现下面异常 具体错误信息如下 The specified type member UserExt is not supported in LINQ to Entities. Only initializers, entity members, and entity navigation properties are supported. 即UserExt类型并不能被linq支持。因为在进入到foreach进行真正取数据之前。EF已经把linq转成SQL语句而UserExt会被转成对应的数据库字段。因为数据库中并没有该字段所以会出现这个问题。解决的方法很简单 from user in _context.UserInfoes.ToList() select new { user.Id, user.UserExt }; 即先执行ToList()提前让linq进行执行生成UserInfo集合这样就可以正常访问UserExt了。别看这个小小的改动。在多表联查过滤字段的情况下你会体会到无尽的妙处 你可能会想到一个问题如果我再加一个完整的属性会出现什么情况 public partial class UserInfo { public string UserExt { get { return UserName : UserType; } } //新增一个完整的属性 public string UserExt2 { get; set; } }上面的UserExt2是我们新加入的一个属性现在我们来执行一下查询。我想真正去研究过Linq的人肯定知道结果了。 在Linq操作中实体中的属性必须在配置映射时指定。我们的数据库中当然没有UserExt2这个字段所以增加Ignore标识或调用一下 this.Ignore(t t.UserExt2); 转载于:https://www.cnblogs.com/shasha-611/p/7448625.html
http://www.pierceye.com/news/586589/

相关文章:

  • sem优化托管公司湖南做网站seo
  • 网站流量下跌免费空间asp网站
  • 有没有可以做app的网站wordpress代码转义
  • 电子商务网站开发的任务书wordpress图片间距
  • 石家庄集团网站建设哪些网站可以做微信
  • 网站文件夹名平台期什么意思
  • 怎么用vps做网站论坛网站建设视频
  • 广州网站制作实力乐云seowordpress 评论模块
  • 永久免费制作网站木门行业做网站有什么好处
  • 怎么区分模板网站wordpress菜单怎么建
  • 网站开发最新效果企业手机网站建
  • 网站群管理系统哪个好wordpress制作会员功能
  • 做套现网站网站的访问量
  • 做网站网页需要学些什么做网站学的什么专业
  • 建设银行的官方网站纪念币公司宣传页设计印刷
  • 网站左侧图片悬浮代码常州工厂网站建设
  • 智慧团建网站怎么转团关系app制作开发小程序制作开发
  • 誉字号网站wordpress 展示模板下载
  • 网站不接入备案成都市建设工程质量协会网站
  • 企业网站html网站开发济南招聘
  • 网站html优化方法音乐网站开发参考文献
  • 网站建设及推广方案ppt模板微信小程序开发工具下载哪个版本
  • 固安县城乡和住房建设局网站科技公司手机端网站
  • 寿光网站建设思科企业网络拓扑图
  • 中国建设银行河南省分行网站建筑人才服务中心官网
  • 响应式app网站模板单页淘宝客网站2014年行吗
  • 西安网站推广优化高端定制网站开发设计建站流程
  • m版网站开发公司如何做网络推广营销
  • 济宁商城网站开发设计网址源码在线查看
  • 网站建设公司介绍百度电脑怎么用wordpress