2016-12-28 11 views
1

私はASPのショップでC#を使用しています。この場合、製品の詳細ページのイメージを取得しようとしていますが、各製品の各イメージ最も重要なテーブルは次のとおりです。アイテムからのIDを使用してイメージを取得するASP.NET

製品:IDを持つ製品ごとに画像が関連付けられています。
イメージ:製品ごとに1つのイメージが表示されます。

public T GetById(string id) 
{ 
    return GetById(new object[] { id }); 
} 
:私は、このメソッドを使用しているデータベースからデータを取得するための

//Id from image 
public int ID { get; set; } 
//Name of the image 
public string NameImg { get; set; } 
//Path from image 
public string ImgPath{ get; set; } 
//FK from product table 
[ForeignKey("Product")] 
public int Product_Id { get; set; } 
public Product Product { get; set; } 

public List<Imgs> Imagenes { get; set; } 

と画像テーブル内:

製品の表には、このフィールドを含みます

aspx.csでは、データをaspxに「埋め込む」方法は次のとおりです。

prodManager = new ProductManager(context) 
Product product = null; 

product = prodManager.GetById(new object[] { id });      
var image = product.Imagenes.FirstOrDefault().ImgPath.ToString(); 

nameProd.Text = "<h2>"+product.NameProd+"</h2>"; 
imgProd.ImageUrl = image; 

(プロダクトマネージャはGetById方法のクラスである)nameProdラベルとimgProdはasp:Imageあります。問題は、imgPathをimgProdのソースとして取得しようとしている間、nullであると言います。私はFirstOrDefaultを使用する可変イメージについて何か不足していると思います。

+0

おそらく、このメソッドをデバッグして表示し、検査するべきでしょう: 'GetById(new object [] {id});' – mybirthname

+0

例外が発生しなければ 'image'はnullになりません。エラーが発生し、nullでToString()を呼び出すとエラーになります。文字通り文字列 "null"を意味しますか? – Crowcoder

答えて

0

問題を解決するには:

imgManは、データを取得するためのメソッドにコールするイメージマネージャであり、画像を印刷するために、解決策はこの1つである
var img = imgMan.GetAll().Where(i => i.ID == product.Id).FirstOrDefault(); 

imgProd.ImageUrl = img.ImgPath; 
+1

あなたは 'imgMan.GetAll()。FirstOrDefault(i => i.ID == product.Id);' – GeorgeChond

+0

を使って最初の行を単純化することができます。 – user3342948