我已经根据“动态数据站点”模板创建了新网站。添加了 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; }
}
}
也不起作用:表格仍然存在于第一页...
为什么?如何解决这个问题?
该问题的解决方案:部分类与自动生成的类部分不匹配也解决了当前的问题
问题出在 VS 中:它没有将实体类视为部分......因此没有将元数据类应用于实体类。