2013-06-18 54 views
0

我有一個CustomProductProperty模式,讓用戶擁有自己的產品自定義字段,內包含鏈接到處理用戶定義的數據類型數據庫CustomDataType模型。的自定義數據類型的類不顯示

[Table("Product")] 
public class Product 
{ 
    [Key] 
    [DatabaseGenerated(DatabaseGeneratedOption.Identity)] 
    public int ProductID { get; set; } 
    public int ProductTypeID { get; set; } 
    [Display(Name = "Product Name")] 
    public string ProductName { get; set; } 
    [ForeignKey("ProductTypeID")] 
    [Display(Name = "Product Type")] 
    public virtual ProductType ProductType { get; set; } 
    public virtual ICollection<CustomProductProperty> CustomProperties { get; set; } 
} 

[Table("CustomProductProperty")] 
public class CustomProductProperty 
{ 
    [Key] 
    [DatabaseGenerated(DatabaseGeneratedOption.Identity)] 
    public int CustomPropertyID { get; set; } 

    public int CustomDataTypeID { get; set; } 
    [ForeignKey("CustomDataTypeID")] 
    public virtual CustomDataType DataType { get; set; } 

    public int ProductID { get; set; } 
    [ForeignKey("ProductID")] 
    public virtual Product Product { get; set; } 

    public string PropertyValue { get; set; } 
} 

[Table("CustomDataType")] 
public class CustomDataType 
{ 
    [Key] 
    [DatabaseGenerated(DatabaseGeneratedOption.Identity)] 
    public int CustomTypeID { get; set; } 
    public string PropertyName { get; set; } 
    public CustomDataTypes DataType { get; set; } 
    public int ModuleID { get; set; } 
    [ForeignKey("ModuleID")] 
    public Module Module { get; set; } 
} 

當試圖在我看來,以顯示這一點,我創建了一個顯示模板來處理CustomProductPropertyICollection的<>出於某種原因,DataType.PropertyName是空的,但PropertyValue仍返回正確的數據,有人知道爲什麼PropertyName是空的?

@model IEnumerable<InventoryManager.Models.CustomProductProperty> 
@{ 
    Layout = null; 
} 
@foreach (var item in Model) 
{ 
<tr> 
    <th>@Html.DisplayFor(model => item.DataType.PropertyName)</th> 
    <td>@Html.DisplayFor(model => item.PropertyValue)</td> 
</tr>  
} 

回答

1

您應該添加一些代碼來展示如何將此模型傳遞給視圖,但我的猜測是它是由Lazy Loading引起的。你有你不控制評價DataType虛擬財產,所以它不是從數據庫加載...使用Include方法在LINQ查詢預先加載

+0

如何強制它包括如果控制器正在查找產品? 'DataType'在'IEnumberable ChaoticLoki

+0

包含方法的用法在此處描述:http://msdn.microsoft.com/en-us/data/jj574232.aspx。如果你向我們展示你用來檢索數據的查詢會更容易... – tdragon

+0

那麼最初我所做的只是'dbcontext.Products.Find(id)' – ChaoticLoki

0

確保模型傳遞到前正在加載的DataType財產該視圖(如果它是懶惰加載,這可能並非如此)。

您使用的是ORM嗎?您可能需要首先加入它 - 如果您更詳細地介紹了您使用的提供程序類型,我們應該能夠提供示例代碼。

+0

我正在使用ORM,實體框架。 – ChaoticLoki

相關問題