当前位置:  开发笔记 > 编程语言 > 正文

如何使用Linq to Sql修剪值?

如何解决《如何使用LinqtoSql修剪值?》经验,为你挑选了2个好方法。

在数据库中,我有一个名为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(字符串值)不会在初始加载(联系人)上调用,而是在测试对象上调用.



1> Chris Shaffe..:

也许你可以把它放在OnLoaded()部分方法中?注意:我从未使用过这个,但我认为它看起来像这样:

public partial class Contact
{
    partial void OnLoaded()
    {
        FirstName = FirstName.Trim();
    }
}


问题的关键是找到做这种逻辑的地方(在这种情况下是OnLoaded()); 该方法本身可以很容易地由"_FirstName = _FirstName.Trim();"组成.避免事故改变事件发生.
请注意,只有当此类的相应表具有主键时,才能使用OnLoad()方法.

2> tvanfosson..:

如果无法更改架构,则可能需要将设计器生成的访问器设置为private/protected,并在部分类实现中创建一个公共访问器以前端属性.然后,您可以修改get访问器中的值.

public partial class Contact
{

    public string RealFirstName
    {
       get { return this.FirstName.Trim(); }
       set { this.FirstName = value; }
    }

    ...
}

推荐阅读
k78283381
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有