我正在使用MySQL Net Connector(http://dev.mysql.com/downloads/connector/net/)并将MySQL数据库导入Visual Studio(ADO.NET实体数据模型)并创建关系
我现在想要将数据库中的一些数据收集到我的自定义业务实体中,并按如下方式对路由进行编码:
public List<Property> GetProperties()
{
using (ncsEntities dataContext = this.ncsDataContext)
{
// Begin Test #1
var q1 = from p in dataContext.ra_properties.Top("3")
where p.street_id > 0
select p;
List<ra_properties> list1 = q1.ToList();
// End Test #1 list2 is populated as expected
// The property ra_streets is populated and is not null
// Begin Test #2
var q2 = from p in dataContext.ra_properties.Top("3")
where p.street_id > 0
select new Property
{
Key2 = p.valuation_id,
Address = "Some Dummy Value"
};
List<Property> list2 = q2.ToList();
// End Test #2
// list2 is populated as expected.
// Begin Test #3
var q3 = from p in dataContext.ra_properties.Top("3")
where p.street_id > 0
select new Property
{
Key2 = p.valuation_id,
Address = (p.ra_streets == null || p.ra_streets.address_1 == null) ? string.Empty : p.ra_streets.address_1
};
List<Property> list3 = q3.ToList();
// End Test #3
// This Test Fails. The exception message is
// Object reference not set to an instance of an object.
return list3;
}
}
我无法弄清楚为什么最后一次测试不起作用。它失败,异常消息对象引用未设置为对象的实例。 任何人都可以帮助我吗?
答案 0 :(得分:0)
我认为您需要在查询中添加对 ra_streets 的明确引用。 我现在无法测试它,但似乎是这样。
尝试将其更改为
// Begin Test #3
var q3 = from p in dataContext.ra_properties.Include("ra_streets").Top("3")
where p.street_id > 0
select new Property
{
Key2 = p.valuation_id,
Address = (p.ra_streets == null || p.ra_streets.address_1 == null) ? string.Empty : p.ra_streets.address_1
};
看看它是否有效?