【发布时间】:2011-03-26 21:11:55
【问题描述】:
我是 ADO.NET 实体框架模型的新手。使用 DotNet Framework 3.5
我有两张桌子:
即。 客户和城市
customers表引用了city表中的一个cityname列(外键关系)
在创建 win c# 表单时,我让用户根据他的搜索选择(即姓名、城市、号码等)过滤客户。这是我的结构
using(DataContext dc = new DataContext())
{
IEnumerable cust = dc.customers;
if(name != null) {
cust = cust.Where<customers>(c => c.name == name);
}
if(mobile != null) {
cust = cust.Where<customers>(c => c.mobile == mobile);
}
if(city != null) {
cust = cust.Where<customers>(c => c.city.cityname == city); //ERROR HERE
}
}
我得到一个 NullPointerException,因为没有调用 EntityReference.Load 方法。非常合乎逻辑的观点,我同意。 我想要一些关于如何在当前架构中调用 load 方法的建议。是否有可能以某种方式做到这一点:
c.cityReference.Load();
c.city.cityname == city
或者可能是一些 lambda 表达式(我是新手),它会引发这两个语句?有什么建议吗? 如果有人有更好的建议,我准备改变当前的架构。
【问题讨论】:
标签: entity-framework ado.net lambda where-clause