2011-03-29 96 views
0

我正在使用MySQL網絡連接器(http://dev.mysql.com/downloads/connector/net/),並且已將MySQL數據庫導入Visual Studio(ADO.NET實體數據模型)並建立了關係。MySQL網絡連接器問題

我現在想從數據庫中的一些數據收集到我的自定義業務實體和已經編寫路由如下:

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

一個接一個的測試..確保你的連接字符串也是正確的...如果你真的連接。 – Crimsonland 2011-03-29 03:07:38

+0

你可以發佈堆棧跟蹤嗎? – 2011-03-29 03:39:08

+0

堆棧跟蹤System.Data.Entity.dll!System.Data.Objects.ObjectQuery .GetResults(System.Data.Objects.MergeOption?forMergeOption)+ 0x96字節 \t System.Data.Entity.dll!系統.Data.Objects.ObjectQuery .System.Collections.Generic.IEnumerable .GetEnumerator()+ 0x2d字節 \t mscorlib.dll中!System.Collections.Generic.List 的.List(系統。 Collections.Generic.IEnumerable 集合)+ 0x13c字節 – Allan 2011-03-30 00:52:03

回答

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 
     }; 

,看看它是否起作用?

+0

我用Include子句測試了上面的內容,但是沒有改變結果。錯誤消息仍然相同。 – Allan 2011-03-30 00:46:07