我正在从主要的经典asp转向.NET。所以这可能是一个愚蠢的问题,但我找不到答案。
我有一个使用Database First和Entity Framework的MVC应用程序。现在我想为自动生成的“部分”类添加一些逻辑。根据我的阅读,它应该是创建一个具有相同名称空间和名称的新的部分类。但是当我这样做时,我得到一个错误“(这个成员被定义不止一次)”和“[partial class]和[partial class]之间的歧义”。我理解错误说的是什么,但我不确定如何解决问题。
我想在集合中添加一些逻辑;存取器。
所以在生成的类中我有
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类中会很好。
这是正确的方式吗?如果是这样,我需要改变什么才能使其发挥作用?
提前感谢您提供任何提示和帮助!
答案 0 :(得分:1)
您无法在两个不同的文件中定义相同的成员。
您可以尝试定义一个新的包装器属性(例如MyDailyCount),它添加额外的逻辑并在最后更新底层的DailyCount,以便它可以持久保存到数据库。
public int MyDailyCount
{
get { return DailyCount; }
set
{
DailyCount = value;
// your extra logic
}
}