linq连接查询与城市表的问题 [英] linq join query problem with city table
问题描述
嗨!
我对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屋!