0

我正在尝试将业务逻辑添加到我的数据库第一个实体框架应用程序中。我想将 address1 的长度限制为 35,并将其余部分移至地址。在数据库中的字段是地址 1 和地址 2,在我的 edmx 上是地址 1 和地址 2。我使用部分扩展了 edmx。但是当试图调用我的自定义 get 函数时,我得到一个异常,说当前线程在 stackoverflow 中。

 public partial class EmployeeWithAddress
    {
        public string Address1
        {
            get
            {
                var employee = Common.LimitAddressFieldTo35(this);
                address1 = employee.Address1;
                address2 = employee.Address2;
                return address1;
            }
            set { address1 = value; }
        }

        public string Address2 { get; set; }
    }

static public EmployeeWithAddress LimitAddressFieldTo35(EmployeeWithAddress employee)
        {
            var ee = employee;  
            if (ee.Address1.Length > 35)
            {
                var address = ee.Address1;
                ee.Address1 = address.Substring(0, 35).Trim();
                ee.Address2 =
                    string.Concat(address.Substring(35, address.Length - 35) + " ", employee.Address2).Trim();
            }

            return ee;
        }

调用 LimitAddressFieldTo35 时发生异常。我正在使用 .net 3.5 中包含的实体框架版本

4

1 回答 1

4

这将无限递归

Address1 { get { ... address1 = employee.Address1; ...} }
于 2012-10-15T19:48:40.063 回答