LINQ的select new怎样使用别名?

hcaihao 2009-05-12 03:04:51
gvOperateLog.DataSource = from o in BasePage.CoreEntity.OperateLogs
from a in BasePage.CoreEntity.Admins
from u in BasePage.CoreEntity.Users
from l in BasePage.CoreEntity.Licenses
from s in BasePage.CoreEntity.SerialNumbers
from t in BasePage.CoreEntity.Types
where a.ID == o.AdminID && u.ID == l.UserID && l.SerialNumberID == s.ID && t.ID == s.TypeID
select new
{
o.ID,
a.UserName,
u.UserName,
t.Title,
o.Operate,
o.CreateDate
};

gvOperateLog.DataBind();

a和u表都有个UserName列,LINQ会提示“An anonymous type cannot have multiple properties with the same name”

如何使用别名,把a.UserName变成AdminName


...全文
2828 23 打赏 收藏 转发到动态 举报
写回复
用AI写文章
23 条回复
切换为时间正序
请发表友善的回复…
发表回复
醉爱 2010-07-02
  • 打赏
  • 举报
回复
AdminName接收你要取的值就可以了
古龙老子 2010-06-30
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 liu326166879 的回复:]
select new
{
ID = o.ID,
UName = a.UserName,
TName = u.UserName,
TTitle = t.Title,
operate = o.Operate,
CDate =o.CreateDate
}; 这里别名可以任意取甚至还可以是中文!
来晚了
hechenqingtian 2010-04-09
  • 打赏
  • 举报
回复
WCF,LINQ,Entity,MVC,Jquery,Ext,java 等技术爱好者 请加入群 88718955

如此群希望大家不要闲聊,不谈政治,不能瞧不起他人技术。

希望大叫相互交流,维护好良好的学习气氛
  • 打赏
  • 举报
回复
学习了
psy0324 2009-07-19
  • 打赏
  • 举报
回复
select new
{
o.ID,
AdminName=a.UserName,
UserName=u.UserName,
t.Title,
o.Operate,
o.CreateDate
};

只需要把需要命的别名写在前面就好了1
Adechen 2009-07-12
  • 打赏
  • 举报
回复
已经說了,
和sql里的类似
昕颖 2009-07-03
  • 打赏
  • 举报
回复
6楼正解

shinlgienls 2009-07-02
  • 打赏
  • 举报
回复
第一次 看新版csdn 呵呵 不错
Xuon 2009-07-01
  • 打赏
  • 举报
回复
学习了
yezie 2009-06-02
  • 打赏
  • 举报
回复
都回答了。。。。。。。。。
qqshenyunzcz 2009-06-02
  • 打赏
  • 举报
回复
select new
{
o.ID,
AdminName=a.UserName,
u.UserName,
t.Title,
o.Operate,
o.CreateDate
};
ashou706 2009-06-02
  • 打赏
  • 举报
回复
学习
E_wait 2009-06-01
  • 打赏
  • 举报
回复
楼上正解
liu326166879 2009-05-28
  • 打赏
  • 举报
回复
select new
{
ID = o.ID,
UName = a.UserName,
TName = u.UserName,
TTitle = t.Title,
operate = o.Operate,
CDate =o.CreateDate
}; 这里别名可以任意取甚至还可以是中文!
silence0716 2009-05-25
  • 打赏
  • 举报
回复
楼上 正解
幸运的意外 2009-05-13
  • 打赏
  • 举报
回复
gvOperateLog.DataSource = from o in BasePage.CoreEntity.OperateLogs
from a in BasePage.CoreEntity.Admins
from u in BasePage.CoreEntity.Users
from l in BasePage.CoreEntity.Licenses
from s in BasePage.CoreEntity.SerialNumbers
from t in BasePage.CoreEntity.Types
where a.ID == o.AdminID && u.ID == l.UserID && l.SerialNumberID == s.ID && t.ID == s.TypeID
select new
{
o.ID,
UserNameA = a.UserName,
UserNameU = u.UserName,
t.Title,
o.Operate,
o.CreateDate
};

gvOperateLog.DataBind();
用红色部分替代就可以了。select生成匿名类型时是支持开发者指定属性名的,这样就可以区分了。
jzywh 2009-05-13
  • 打赏
  • 举报
回复
select new
{
ID = o.ID,
UserName = a.UserName,
TrueName = u.UserName,
Title = t.Title,
Operate = o.Operate,
CreateDate =o.CreateDate
};
wangan2008 2009-05-12
  • 打赏
  • 举报
回复
学习
wxg22526451 2009-05-12
  • 打赏
  • 举报
回复
            gvOperateLog.DataSource = from o in BasePage.CoreEntity.OperateLogs 
from a in BasePage.CoreEntity.Admins
from u in BasePage.CoreEntity.Users
from l in BasePage.CoreEntity.Licenses
from s in BasePage.CoreEntity.SerialNumbers
from t in BasePage.CoreEntity.Types
where a.ID == o.AdminID && u.ID == l.UserID && l.SerialNumberID == s.ID && t.ID == s.TypeID
select new
{
o.ID,
AdminName=a.UserName,
u.UserName,
t.Title,
o.Operate,
o.CreateDate
};
wxg22526451 2009-05-12
  • 打赏
  • 举报
回复
AdminName=a.UserName
加载更多回复(1)
《轻松学C#(图解版)》完整扫描版================================================================ 基本信息 作者:谷涛、扶晓、毕国锋 丛书名:轻松学开发 出版社:电子工业出版社 ISBN:978-7-121-20223-0 出版日期:2013年6月 开本:16开 页码:408页 版次:1-1 定价:¥55.00 所属分类:计算机 > 软件与程序设计 > C# ================================================================ 内容简介 本书由浅入深,全面、系统地介绍了C#程序设计。除了详细地讲解C#知识点外,本书还提供了大量的实例,供读者实战演练。本书共分三篇。第一篇是C#概述篇,主要介绍的是Visual Studio 2012的开发环境及搭建。第二篇是面向对象基础篇,主要介绍类、对象、字段、方法、流程控制、数组、继承、属性、运算符重载、接口等C#基本内容。第三篇是应用技术篇,主要介绍的是异常处理、文件和流、委托、事件、Lambda表达式、命名空间、预处理器、程序集、运行时类型标识、反射、特性、泛型、LINQ和数据库开发等。 ================================================================ 图书目录 第一篇 C#概述篇 第1章 C#入门 2 1.1 C#概述 2 1.1.1 C#的发展 2 1.1.2 C#开发的基础 2 1.2 搭建开发环境 3 1.2.1 Visual Studio 2012软硬件配置要求 3 1.2.2 下载Visual Studio 2012 3 1.2.3 安装Visual Studio 2012 4 1.2.4 初始化配置 7 1.3 第一个程序—Hello World 8 1.4 小结 11 1.5 习题 12 第二篇 面向对象基础篇 第2章 类和对象 16 2.1 分析Hello World程序 16 2.2 语法规范 17 2.2.1 标识符 17 2.2.2 关键字 18 2.2.3 注释 19 2.3 定义类 20 2.4 实例化对象 20 2.5 小结 20 2.6 习题 21 第3章 定义类——字段 23 3.1 数据类型 23 3.1.1 简单值类型 23 3.1.2 值的表示——字面量 26 3.1.3 转义序列 27 3.2 定义字段 27 3.2.1 定义字段 28 3.2.2 静态字段和实例字段的访问 28 3.2.3 字段初始化 29 3.2.4 字段的动态赋值——Read()和ReadLine() 31 3.2.5 字段输出 31 3.2.6 格式化输出 32 3.2.7 数据类型转换 39 3.2.8 只读字段 41 3.2.9 访问控制 41 3.3 运算符 43 3.3.1 算术运算符 43 3.3.2 自增、自减运算符 44 3.3.3 复合赋值运算符 45 3.3.4 位运算符 46 3.3.5 sizeof运算符 47 3.3.6 运算符的优先级 47 3.4 小结 49 3.5 习题 49 第4章 定义类——方法 51 4.1 方法的概述 51 4.1.1 定义方法 51 4.1.2 方法的调用 52 4.2 方法体的构成 53 4.2.1 局部变量 53 4.2.2 局部变量与字段同名的解决——this关键字 54 4.2.3 语句 55 4.2.4 全局变量 55 4.3 返回值 56 4.3.1 返回值类型 56 4.3.2 从方法返回 57 4.4 参数 58 4.4.1 参数的分类 58 4.4.2 引用参数(ref参数) 59 4.4.3 输出参数(out参数) 61 4.5 特殊的方法 62 4.5
Dapper .NET 是 .NET 下一个简单的对象关系映射库 (ORM)。它支持SQLite, SQL CE, Firebird, Oracle, MySQL, PostgreSQL and SQL Server等数据库。   优点: 使用Dapper可以自动进行对象映射! 轻量级,单文件。 支持多数据库。 Dapper原理通过Emit反射IDataReader的序列队列,来快速的得到和产生对象。   Dapper.Net的示例代码: public class Dog {     public int? Age { get; set; }     public Guid Id { get; set; }     public string Name { get; set; }     public float? Weight { get; set; }     public int IgnoredProperty { get { return 1; } } }             var guid = Guid.NewGuid(); var dog = connection.Query("select Age = @Age, Id = @Id", new { Age = (int?)null, Id = guid }); dog.Count()     .IsEqualTo(1); dog.First().Age     .IsNull(); dog.First().Id     .IsEqualTo(guid); 下面是Dapper .NET与其他几种数据访问组件的性能对比,从比较结果看Dapper .NET表现优异。 Performance of SELECT mapping over 500 iterations - POCO serialization Method Duration Remarks Hand coded (using a SqlDataReader) 47ms Can be faster Dapper ExecuteMapperQuery 49ms ServiceStack.OrmLite (QueryById) 50ms PetaPoco 52ms BLToolkit 80ms SubSonic CodingHorror 107ms NHibernate SQL 104ms Linq 2 SQL ExecuteQuery 181ms Entity framework ExecuteStoreQuery 631ms Performance of SELECT mapping over 500 iterations - dynamic serialization Method Duration Remarks Dapper ExecuteMapperQuery (dynamic) 48ms   Massive 52ms Simple.Data 95ms Performance of SELECT mapping over 500 iterations - typical usage Method Duration Remarks Linq 2 SQL CompiledQuery 81ms Not super typical involves complex code NHibernate HQL 118ms   Linq 2 SQL 559ms   Entity framework 859ms   SubSonic ActiveRecord.SingleOrDefault         github地址:https://github.com/StackExchange/dapper-dot-net 入门教程:http://www.cnblogs.com/Sinte-Beuve/p/4231053.html   Dapper已经有很多成熟的扩展项目了,Dapper.Rainbow、Dapper.Contrib,DapperExtensions   其中Dapper-Extensions非常不错,github地址:https://github.com/tmsmith/Dapper-Extensions Dapper-Extensions的优点: 1、开源 2、针对Dapper封装了常用的CRUD方法,有独立的查询语法。 3、需要映射的实体类本身0配置,无需加特性什么的。是通过独立的映射类来处理,可以设置类映射到DB的别名,字段的别名等等。 Dapper-Extensions的缺点: 1、好几年没更新了 2、不支持oracle(木有oracle的方言,已经搞定)  3、不能同时支持多种数据库(已经搞定) 4、部分代码有些bug(发现的都搞定了)   Dapper-Extensions入门教程可参考: http://www.cnblogs.com/hy59005271/p/4759623.html       标签:orm

8,497

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 LINQ
社区管理员
  • LINQ
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧