【发布时间】:2017-06-21 11:05:17
【问题描述】:
我有以下由 mvc 使用数据库优先方法生成的部分类。 如何删除重新初始化 hashset 类以便我可以为其设置默认值?
mvc生成的原始类
public partial class GeneratedClass
{
[System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA2214:DoNotCallOverridableMethodsInConstructors")]
public GeneratedClass()
{
this.GeneratedClass= new HashSet<GeneratedClass>();
}}
我的数据注释部分类
[MetadataType(typeof(GeneratedClassAttribute))]
public partial class GeneratedClass
{
public GeneratedClass()
{
MyPropertyValue = "default value";
}
}
错误抛出
严重性代码描述项目文件行抑制状态 错误 CS0121 调用在以下方法或属性之间不明确:“GeneratedClass”和“GeneratedClass”
更新的工作代码
感谢 Tetsuya Yamamoto 指出创建 2 个具有相同参数的构造函数。所以我添加了一个虚拟参数并对其进行了轰炸。
public GeneratedClass(string dummyValue="")
工作 2 通过柯克沃尔
使用OnCreate
【问题讨论】:
-
部分类将编译为单个类 - 您在同一个类中声明了 2 个没有参数但内容不同的构造函数(可能存在命名冲突)。删除第二个构造函数,看看它是否有效,还可以查看关于部分类的 MSDN 文档 => msdn.microsoft.com/en-us/library/wa80x488.aspx.
-
它们在不同的文件中。因为我不想更改系统生成的文件/代码,因此我创建了另一个部分类来添加元数据类型,如
[Display(Name = "Greeting")] [Required(ErrorMessage = "{0} is required.")]删除第二个构造函数将起作用,但我需要设置默认值,因此我需要它。
标签: c# asp.net-mvc