linq连接查询与城市表的问题 [英] linq join query problem with city table

查看:110
本文介绍了linq连接查询与城市表的问题的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

嗨!

我对linq join查询有疑问.
我有带有城市表外键的管理表.

当我编写以下linq查询时,它在databind时抛出错误.

Hi!

I have a problem with linq join query.
I have admin table with foreign key of city table.

When i write following linq query it throw error at databind time.

MyEntityDataContext MyEntity = new MyEntityDataContext();
 return (from a in MyEntity.tblAdmins
         join c in MyEntity.tblCities
         on a.city equals c.cityid
         select new { a, c.cityname }).ToList();



我收到此错误
====================
数据绑定:''<> f__AnonymousType0`2 [[tblAdmin,App_Code.xexoenga,Version = 0.0.0.0,Culture = neutral,PublicKeyToken = null],[System.String,mscorlib,Version = 2.0.0.0,Culture = neutral ,PublicKeyToken = b77a5c561934e089]]"不包含名称为"id"的属性.


表格admin
=================



I get this error
=====================
DataBinding: ''<>f__AnonymousType0`2[[tblAdmin, App_Code.xexoenga, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null],[System.String, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]]'' does not contain a property with the name ''id''.


table admin
=================

id	int	not null pk
firstname	varchar(50)	null
lastname	varchar(50)	null
username	varchar(50)	null
password	varchar(50)	null
emailid 	varchar(50)	null
hobbies 	varchar(50)	null
gender  	bit	        null
city           	int	null
isactive	bit	null



tblCities
=======================================



tblCities
=========================================

cityid	int	not null pk
cityname	varchar(50)	null




写以下查询时,我得到正确的答案,但是在某些表中,我有40多个列,
所以我想在linq中获取查询,例如选择a.*,b.cityname等.




I am getting correct answer when write following query, but in some table i have over 40 column,
so i want to get query like select a.*,b.cityname etc in linq

return (from a in MyEntity.tblAdmins
                join c in MyEntity.tblCities
                on a.city equals c.cityid
                select new { a.firstname,a.lastname, c.cityname }).ToList();

推荐答案

在这里使用以下查询:
Here you go with this query:
var query = from TableA in MyEntity.tblAdmins
            join TableB in MyEntity.tblCities on TableA.city 
            equals TableB.cityid into tblTemp
            from sub in tblTemp.DefaultIfEmpty()
            select new { MyRow = TableA, sub.cityname  };




祝一切顺利.
--Amit




All the best.
--Amit


这一切都可以,但是选择id也会出错



MyEntityDataContext MyEntity =新的MyEntityDataContext();
返回(来自MyEntity.tblAdmins中的
在MyEntity.tblCities中加入c
在a.city上等于c.cityid
选择新的{a.id,c.cityname}).ToList()
Every thing is ok with this but select id also then error will be gone



MyEntityDataContext MyEntity = new MyEntityDataContext();
return (from a in MyEntity.tblAdmins
join c in MyEntity.tblCities
on a.city equals c.cityid
select new { a.id, c.cityname }).ToList()


这篇关于linq连接查询与城市表的问题的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆