【发布时间】:2011-07-06 16:44:57
【问题描述】:
我有一个由 T4 模板生成的实体框架 POCO 类。
我打算使用生成的类作为我的数据契约。但是,它有一些不需要包含在合同中的属性。例如,我有一个名为 AddressId 的属性。它是地址表的外键。由于实际地址附加到对象上,因此我不希望 AddressId 对客户端可见。
我可以修改 T4 模板,但我不愿意。
我看到了这个post,它展示了如何使用“MetadataType”向部分类中的现有属性添加属性。这是他们给出的例子:
[MetadataType(typeof(Dinner_Validation))]
public partial class Dinner {}
public class Dinner_Validation
{
[Required]
public string Title { get; set; }
}
但我为我的班级尝试过(使用 [IgnoreDataMember])但它不起作用(仍然显示 AddressId)。
如何隐藏这个属性而不必创建一个全新的类来复制我的所有数据?
【问题讨论】:
-
你试过[NonSerialized()]吗?
-
@Yann Olaf - 是的,那行不通。 (NonSerialzed() 用于字段,我有需要隐藏的属性。)
标签: c# entity-framework entity-framework-4.1 partial-classes