データベースの最初のエンティティ フレームワーク アプリケーションにビジネス ロジックを追加しようとしています。address1 の長さを 35 に制限し、残りを address to に移動します。データベースではフィールドは Address1 と Address2 で、私の edmx では address1 と address2 です。パーシャルを使用して edmx を拡張しました。しかし、カスタム get 関数を呼び出そうとすると、現在のスレッドがスタックオーバーフローにあるという例外が発生します。
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 に含まれるエンティティ フレームワーク バージョンを使用しています