c# 自动生成部分 class 重新定义 属性 get set

c# auto generated partial class redefine property get set

我正从主要 classic asp 转向 .NET。所以这可能是一个愚蠢的问题,但我找不到答案。

我有一个使用数据库优先和 Entity Framework 的 MVC 应用程序。现在我想向自动生成的 'partial' classes 添加一些逻辑。根据我的阅读,这应该是创建一个具有相同名称空间和名称的新部分 class 的问题。但是当我这样做时,我得到一个错误“(这个成员被定义了不止一次)”和 "Ambiguity between [partial class] and [partial class]"。我明白错误的意思,但我不确定如何解决这个问题。

我想给集合添加一些逻辑;存取器。

所以在生成的class中我有

public partial class QualityChecks
{
.....
    public int DailyCount { get; set; }
...
}

在我的新部分 class 中,我想添加设置代码以确保只添加大于 0 的值。如果添加了负值,则需要记录并更改为 0 例如我的新部分 class 是:

public partial class QualityChecks    {
public int DailyCount         {        
set
        {
            DailyCount = value;
            if it's < 0 log and set to 0
        }

    }

如果不清楚,这可能会有所帮助: 目前我有大量代码可以简单地完成

QualityChecks qc = new QualityChecks();
qc.DailyCount = enteredAmount;
....
db.QualityChecks.add(qc);

与其在任何地方更新该逻辑,不如将其包含在 QualityChecks 中 class。

这是正确的做法吗?如果是这样,我需要更改什么才能使其正常工作?

提前感谢您的任何提示和帮助!

不能在两个不同的文件中定义相同的成员。

您可以尝试定义一个新的包装器 属性(例如 MyDailyCount)来添加额外的逻辑并在最后更新底层的 DailyCount 以便它持久保存到数据库中。

public int MyDailyCount 
{
   get { return DailyCount; }
   set 
   { 
         DailyCount = value; 
         // your extra logic 
    }
}