我有这个mvc控制器:
public ActionResult Index(string country)
{
var c = _hc.Countries.Where(l => l.Code.Equals(country, StringComparison.InvariantCultureIgnoreCase)).FirstOrDefault();
var customers = _hc.Customers.Where(h => h.Country.Code.Equals(country, StringComparison.InvariantCultureIgnoreCase));
foreach (var h in customers)
h.Country = c;
return View(customers);
}
一切正常,但我只希望Customer.Country.Code
有一个值。因为这个列出了同一个国家的所有客户......
当我使用原始SqlQuery
时(因为地理定位的东西)
var customers = _hc.Database.SqlQuery<Customer>(@"
SELECT customers.*, countries.code
FROM [dbo].customers
inner join countries on customers.countryid = countries.id
where geography::Point(50.436912, 5.972050, 4326).STDistance(geography::Point([Latitude], [Longitude], 4326)) <= 25000").ToList();
我在customer对象中有countryid,因为那是Foreign Key。并且已经看到了一些可用于包含其他数据的扩展方法。但根据我的智慧,它是不可用的。可能很容易。但是星期五下午(对我而言)太难了。
答案 0 :(得分:0)
要使用Include()扩展方法,您需要添加以下内容:
using System.Data.Entity;
使用示例:
var customers = _hc.Customers
.Include(h => h.Country)
.Where(h => h.Country.Code.Equals(country, StringComparison.InvariantCultureIgnoreCase));