【发布时间】:2014-01-01 11:31:56
【问题描述】:
我想从我的数据库构建中执行请求
Table Zipcodes
string Zipcode
string Description
string StateCode
string RegionCode
string CountryCode
Table States
string StateCode
string StateName
Table Region
string RegionCode
string RegionName
Table Country
string CountryCode
string CountryName
所以,我想用名称而不是代码列出我所有的邮政编码。
我的邮政编码表包含 8 行。 在 ZIPCode 表中,只有州代码可以为 Null。
这是我的要求:
var dset = from s in db.ZIPCODEs
join u in db.COUNTRies on s.COUNTRYCODE equals u.COUNTRYCODE
join v in db.STATES on s.STATECODE equas v.STATECODE
join w in db.REGIONS on s.REGIONCODE equals w.REGIONCODE
select new ZIPCODEListViewModel
{
ID = s.ID,
ZIPCODE1 = s.ZIPCODE1,
DESCRIPTION = s.DESCRIPTION,
STATECODE = s.STATECODE,
CONTRYCODE = s.COUNTRYCODE,
REGIONCODE = s.REGIONCODE,
STATECODE = s.STATENAME,
COUNTRYNAME =u.DESCRIPTION,
STATENAME = v.DESCRIPTION,
REGIONNAME = w.DESCRIPTION
};
这将返回 0 行。
如果我只在 COUNTRY 和 REGION 上使用不包含空值的连接,我会收到所有行。
我的问题是:如何构建我的请求以返回所有行,并且在 Statename 中使用字符串或 null 是 Statecode 为 null ?
感谢您的帮助,对糟糕的英语和糟糕的 linq 能力深表歉意。
罗比
【问题讨论】:
标签: c# sql asp.net-mvc linq