在数据库中,我有一个名为Contact的表.第一个名称和其他此类字符串字段旨在使用Char数据类型(而不是我的数据库设计).我的对象Contact映射到属性中的字符串类型.如果我想通过id检索一个Contact对象的简单测试,我会这样做:
Contact contact = db.Contacts.Single(c => c.Id == myId); Contact test = new Contact(); test.FirstName = "Martin"; Assert.AreEqual(test.FirstName, contact.FirstName);
由于char类型,contact.FirstName值为"Martin".我在哪里可以拦截FirstName属性?OnFirstNameChanging(字符串值)不会在初始加载(联系人)上调用,而是在测试对象上调用.
也许你可以把它放在OnLoaded()部分方法中?注意:我从未使用过这个,但我认为它看起来像这样:
public partial class Contact { partial void OnLoaded() { FirstName = FirstName.Trim(); } }
如果无法更改架构,则可能需要将设计器生成的访问器设置为private/protected,并在部分类实现中创建一个公共访问器以前端属性.然后,您可以修改get访问器中的值.
public partial class Contact { public string RealFirstName { get { return this.FirstName.Trim(); } set { this.FirstName = value; } } ... }