【发布时间】:2015-06-12 14:09:24
【问题描述】:
我主要从经典的 asp 迁移到 .NET。所以这可能是一个愚蠢的问题,但我找不到答案。
我有一个使用数据库优先和实体框架的 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 类中会很好。
这是正确的做法吗?如果是这样,我需要进行哪些更改才能使其正常工作?
提前感谢您的任何提示和帮助!
【问题讨论】:
-
作为替代方案,您是否考虑过这个想法:将这些实体类保留在您的存储库代码中。然后使用github.com/AutoMapper/AutoMapper 之类的东西在这些实体类和其他可以包含您需要的检查的数据类之间进行映射。那样。你可以避免部分类的问题。
-
有趣的是,我在这个项目的其他地方使用了 Automapper,效果很好。我没想过那样使用。可能是我缺乏经验,但创建新类和映射感觉更混乱?
标签: c# asp.net-mvc entity-framework partial-classes