动态数据站点:无法隐藏表格

时间:2011-05-16 22:16:24

标签: asp.net entity-framework dynamic-data asp.net-dynamic-data

我已根据“动态数据网站”模板创建新网站。其中添加了3个表:Product,ProductSKU,SkuPrice。表之间存在关系:

Product.ProdId=ProductSku.ProdId
ProductSku.SkuId=SkuPrice.SkuId

我不希望用户看到“产品”表,所以我隐藏了该表:

namespace CompanyDbAdmin
{
    [MetadataType(typeof(ProductMetadata))]
    public partial class Product
    {
    }

    [ScaffoldTable(false)]
    public class ProductMetadata
    {    
    }
}

当我试图隐藏'ProductSKU'表中的某些列时:

namespace CompanyDbAdmin
{
    [MetadataType(typeof(ProductSKUMetadata))]
    public partial class ProductSKU
    {
    }

    public class ProductSKUMetadata
    {
        [ScaffoldColumn(false)]
        public object MyCollumnName { get; set; }
    }
}

我发现它不起作用:列仍然显示。问题似乎是'ProductSKU'类与现有表'不匹配'...

以下是该表的自动生成代码:

namespace CompanyDbAdmin
{

    /// <summary>
    /// No Metadata Documentation available.
    /// </summary>
    [EdmEntityTypeAttribute(NamespaceName="SotiModel", Name="ProductSKU")]
    [Serializable()]
    [DataContractAttribute(IsReference=true)]
    public partial class ProductSKU : EntityObject
    {
        ....
    }
}

尝试使用

隐藏此表格
namespace CompanyDbAdmin
{
    [MetadataType(typeof(ProductSKUMetadata))]
    public partial class ProductSKU
    {
    }

    [ScaffoldTable(false)]
    public class ProductSKUMetadata
    {
        [ScaffoldColumn(false)]
        public object MyCollumnName { get; set; }
    }
}

也不起作用:第一页上仍然存在表......

为什么呢?如何解决?

非常感谢!

1 个答案:

答案 0 :(得分:2)

该问题的解决方案:Partial class doesn't match to auto-generated class part解决了当前的问题

P.S。实际上,我的链接答案被主持人删除了(不知道为什么),但问题出现在VS中:它没有将实体类视为部分...并且因此没有将metadataclass应用于实体类。