sql联表查询 linq to sql 反射
现在有2张表,A表有主键id,name,typeid这3个键,B表有id,name2个键。A表的typeid是B表id的外键。现在B表有3条数据,A表有1条数据,A表的那...
现在有2张表,A表有主键id,name,typeid这3个键,B表有id,name2个键。A表的typeid是B表id的外键。现在B表有3条数据,A表有1条数据,A表的那条数据关联到B表的一条数据上。现在联表查询,想将A表的那条数据关到B表的3条数据里,B表没直接关系的2条数据上写上其他默认值。我不知道怎么做,我们组长说用反射来做,请大家帮帮忙。用linq to sql语句写出来
急着用啊!!!!! 展开
急着用啊!!!!! 展开
3个回答
展开全部
将A、B表放到数据库,例如放到AdventureWorks数据库,选中这两个表作为数据源对象,将它们拖到O/R设计器窗口,产生DataContext类映射数据库,两个实体类A和B分别映射表A和表B。在Main方法中执行以下语句:
string connectionString =
"Data Source=.;Initial Catalog=AdventureWorks;Integrated Security=True";
AdventureWorksDataContext db = new AdventureWorksDataContext(connectionString);
var query = from a in db.A
from b in db.B
where a.typeid==b.id
select new
{idA=a.id,name=a.name,typeid=a.typeid,idB=b.id,name2=b.name2};
foreach(var q in query)
Console.WriteLine(q);
string connectionString =
"Data Source=.;Initial Catalog=AdventureWorks;Integrated Security=True";
AdventureWorksDataContext db = new AdventureWorksDataContext(connectionString);
var query = from a in db.A
from b in db.B
where a.typeid==b.id
select new
{idA=a.id,name=a.name,typeid=a.typeid,idB=b.id,name2=b.name2};
foreach(var q in query)
Console.WriteLine(q);
展开全部
关系型数据库的查询,而linq实际上是对内存里的数据的查询。
虽然linq原来是对象查询,但经过ms的努力,可以通过表达式分析与实体到关系的映射(linq to sql),把linq转换为sql语句或是对xml的查询(linq to xml)。
因此,这种技术就成了对象到数据库记录的一个方便的映射、转化与操作的工具,你再也不必去去根据不同的情况用字符串拼接的办法生成sql,而是专心于对象模型的处理即可,你对于对象的修改最终都会被转换为对应的update, insert, delete等sql语句,在你submit时全部提交到数据库中。
综尔言之,linq to sql是一个数据库到对象结构的一个中间层, 他把对关系数据的管理转变为对象的操作,屏蔽了麻烦的sql,而且,还可以得到vs强大的智能感知功能的帮助。
虽然linq原来是对象查询,但经过ms的努力,可以通过表达式分析与实体到关系的映射(linq to sql),把linq转换为sql语句或是对xml的查询(linq to xml)。
因此,这种技术就成了对象到数据库记录的一个方便的映射、转化与操作的工具,你再也不必去去根据不同的情况用字符串拼接的办法生成sql,而是专心于对象模型的处理即可,你对于对象的修改最终都会被转换为对应的update, insert, delete等sql语句,在你submit时全部提交到数据库中。
综尔言之,linq to sql是一个数据库到对象结构的一个中间层, 他把对关系数据的管理转变为对象的操作,屏蔽了麻烦的sql,而且,还可以得到vs强大的智能感知功能的帮助。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
select * from A,B where A.typeid=B.id(+);
比较疑惑,既然A表的typeid是B表id的外键,怎么可能出现B表的数据无法与A表关联的情况。
比较疑惑,既然A表的typeid是B表id的外键,怎么可能出现B表的数据无法与A表关联的情况。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询