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
}
}
我正从主要 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
}
}