-->

C#自动生成的部分类中重新定义属性被置(c# auto generated partial clas

2019-10-23 08:41发布

我主要从传统的ASP迁移到.NET。 所以这可能是一个愚蠢的问题,但我无法找到答案。

我一直在使用数据库优先和Entity Framework的MVC应用程序。 现在,我想一些逻辑添加到自动生成的“部分”类。 从我读过它应该具有相同的命名空间和名称创建一个新的部分类的问题。 但是,当我做,我得到一个错误“(此构件被定义一次以上)”和“间[部分类]歧义和[部分类]”。 我明白什么是错误的说法,但我不知道如何解决这个问题。

我想了一些逻辑添加到组; 访问。

所以在生成的类我有

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

在我的新的部分类我想添加到组代码,以确保仅值大于然后加入0。 如果添加了一个负值,它需要被记录和更改为0,如我的新的部分类:

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类包裹起来。

这就是要去了解它的正确方法? 如果是的话我需要做什么改变,使这项工作?

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

Answer 1:

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

您可以尝试在最后定义一个新的包装性能(如MyDailyCount),其添加额外的逻辑和更新基础DailyCount所以它得到保存到数据库中。

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


文章来源: c# auto generated partial class redefine property get set