首页新闻找找看学习计划

一个很简单的语句,却不知用Linq to sql怎么写?

0
悬赏园豆:15 [已解决问题] 解决于 2012-11-07 13:31

餐馆表:T_Restaurant (id,name)

地址表:T_Address(id,restaurantId,address)

餐馆表和地址表是一对多的关系,即一个餐馆对应多个地址,

目的:查询出餐馆及最新地址

sql语句:

select T_Restaurant.*, (select top 1 address from  T_Address  where T_Address. restaurantId = T_Restaurant.id order by T_Address.id desc)  from  T_Restaurant

请问linq to sql 怎么写啊??

滴水冰寒的主页 滴水冰寒 | 初学一级 | 园豆:43
提问于:2012-11-07 12:33
< >
分享
最佳答案
0
var query=db.T_Restaurant.Select(s=>
new{
    s.id,
    s.name,
   address=s.T_Address.OrderByDesc(o=>o.id).First().address  
});
收获园豆:15
Qlin | 老鸟四级 |园豆:2403 | 2012-11-07 12:51

不对吧:s.T_Address.OrderByDesc(o=>o.id).First().address  是取表中所有数据的第一个吧,没有把id相关联啊?


 

滴水冰寒 | 园豆:43 (初学一级) | 2012-11-07 13:50

@滴水冰寒: 

这种写法是建立了关系的, s.T_Address不是 ab.T_Address, s.T_Address是这一个餐馆的所有地址,不是所有的地址。

如果没建关系,用左连接参考地址:http://www.cnblogs.com/lyj/archive/2008/01/24/1051495.html

Qlin | 园豆:2403 (老鸟四级) | 2012-11-07 14:01

@Qlin: 如果2个表中建立了外键约束,我相信ling to sql会生成对应关系的,可是我这2个表并没有建立约束关系的,程序里怎么会知道呢

滴水冰寒 | 园豆:43 (初学一级) | 2012-11-07 14:06

@滴水冰寒: 

你的意思是 你没有建关系,现在程序里已经有了关系了?

你不设置,应该不知道,可以在两个实体模型中右键添加关系。

Qlin | 园豆:2403 (老鸟四级) | 2012-11-07 14:14

@Qlin: 谢谢,跟据你的语句提示,我已经写出来了,我一向不喜欢在数据中使用约束,这是我的毛病,呵呵

滴水冰寒 | 园豆:43 (初学一级) | 2012-11-07 14:35
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册