首页 > 解决方案 > 属性值更改而不调用 setter

问题描述

我正在使用上下文类进行需要插入记录的项目。但是,在插入之前,“DataArea”属性之一被设置为它不应该具有的值。

我开始调试代码以查看该值的确切设置位置,并且我已将 getter 和 setter (get; set;) 的简短书面版本更改为:

public DataAreaEnum _DataArea;
public DataAreaEnum DataArea
    {
        get
        {
            return _DataArea;
        }
        set
        {
            _DataArea = value;
            Debugger.Break();
        }
    }

通过这样做,我希望调试器在设置值时会中断,但是这永远不会被击中。我被困住了,不知道该怎么想。有没有其他方法可以设置这个值?如果设置器中的断点从未被命中,我如何才能找到该值的设置位置?

完整的类代码:

using Works.Common.Models;
using System.Collections.Generic;
using System.Diagnostics;

namespace Works.Models.Toolsheets
{
    public partial class Toolblad : ModelBase
    {
        public Toolblad()
        {
            Bijlagen = new HashSet<Bijlage>();
            //Carrousels = new HashSet<Carrousel>();
            KlauwplaatSlijpers = new HashSet<KlauwplaatSlijper>();
            Klauwplaten = new HashSet<Klauwplaat>();
            Laadtafels = new HashSet<Laadtafel>();
            Laders = new HashSet<Lader>();
            MblStangenLaders = new HashSet<MblStangenLader>();
            MblStangenLaderWisselpunten = new HashSet<MblStangenLaderWisselpunt>();
            Shuttles = new HashSet<Shuttle>();
            Spankoppen = new HashSet<Spankop>();
            SpankopSlijpers = new HashSet<SpankopSlijper>();
            Revolvers = new HashSet<ToolbladRevolver>();
        }

        public DataAreaEnum _DataArea;
        public DataAreaEnum DataArea
        {
            get
            {
                return _DataArea;
            }
            set
            {
                _DataArea = value;
                Debugger.Break();
            }
        }

        public bool IsTemplate { get; set; }

        #region Navigation Properties

        public virtual AlgemeneInfo AlgemeneInfo { get; set; }

        public int AlgemeneInfoId { get; set; }

        public ICollection<Bijlage> Bijlagen { get; set; }

        //public ICollection<Carrousel> Carrousels { get; set; }

        public ICollection<KlauwplaatSlijper> KlauwplaatSlijpers { get; set; }

        public ICollection<Klauwplaat> Klauwplaten { get; set; }

        public ICollection<Laadtafel> Laadtafels { get; set; }

        public ICollection<Lader> Laders { get; set; }

        public MachineGroep MachineGroep { get; set; }

        public int MachineGroepId { get; set; }

        public ICollection<MblStangenLader> MblStangenLaders { get; set; }

        public ICollection<MblStangenLaderWisselpunt> MblStangenLaderWisselpunten { get; set; }

        public ICollection<ToolbladRevolver> Revolvers { get; set; }

        public ICollection<Shuttle> Shuttles { get; set; }

        public ICollection<Spankop> Spankoppen { get; set; }

        public ICollection<SpankopSlijper> SpankopSlijpers { get; set; }

        #endregion Navigation Properties
    }
}

标签: c#asp.net-coreentity-framework-core

解决方案


我注意到 Toolblad 是一个部分类。其他地方是否有任何代码更改_DataArea?尝试在该代码文件中将其重命名为其他名称(例如_dataArea),看看它是否仍然可以编译。

这样做会捕获任何试图访问它的意外代码。


推荐阅读