You need to enable JavaScript to run this app. 使用分部类添加注解/元数据时出现CS0102重复定义错误如何解决
优惠活动
大模型
产品
解决方案
定价
更多

使用分部类添加注解/元数据时出现CS0102重复定义错误如何解决

问题原因

你遇到的CS0102报错是因为在两个Invoice_Details分部类中重复定义了Quantity属性:C#不允许同一个类中存在同名同签名的成员,分部类只是把类的定义拆分到多个文件,本质还是同一个类,所以重复声明属性必然触发编译错误。

正确实现方案

MetadataTypeAttribute的作用是关联独立的元数据伙伴类,不需要你在自定义分部类中重复声明EF已经生成的属性,按以下步骤修改即可:

步骤1:定义独立的元数据类

这个类专门用来存储属性注解,只需要保证属性名、类型和EF生成的类属性完全对应即可:

public class Invoice_Details_Metadata
{
    [Display(Name = "Quantity")]
    public int Quantity { get; set; }
}

步骤2:修改自定义分部类

自定义分部类只需要关联元数据类,不要重复声明EF已经生成的属性:

[MetadataType(typeof(Invoice_Details_Metadata))]
public partial class Invoice_Details
{
    // 此处可以添加额外的自定义方法、属性,只要不和EF生成的成员重名即可
}

步骤3:保持EF生成的分部类不变

EF自动生成的代码不需要做任何修改,保持原有结构即可:

public partial class Invoice_Details
{
    public int Quantity { get; set; }
}
注意事项
  • 两个Invoice_Details分部类必须处于完全相同的命名空间下,否则会被识别为两个不同的类,注解无法生效
  • 如果需要扩展属性,新增的属性名不要和EF生成的属性重名即可

内容的提问来源于stack exchange,提问作者ebrahem alabdaly

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.12 13:21:04