因此,我正在将数据从一个数据库导入另一个数据库。大约有5,000条记录(所以没有什么可笑的,但是足够小以至于无法引起注意)。有没有一种简单的方法可以自动截断太长的数据-特别是varchar字段?我不希望截断保持沉默,因为太长的字段可能需要引起注意,但是如果一个太长的2个字符的名称不会在插入时失败并且抛出一个完全非特定的异常,那将非常好。

我想实现的解决方案是将数据截断,插入并记录下来的解决方案。还有其他人做过类似的事情吗?

最佳答案

Linq2Sql将生成如下属性:

    [Column(Storage="_Name", DbType="NVarChar(50) NOT NULL")]
    public string Name
    {
        get
        {
            return this._Name;
        }
        set
        {
            if ((this._Name != value))
            {
                this.OnNameChanging(value);
                this.SendPropertyChanging();
                this._Name = value;
                this.SendPropertyChanged("Name");
                this.OnNameChanged();
            }
        }
    }


看看它如何调用称为OnNameChanged的函数吗?只需创建一个具有该名称的函数来进行截断和记录:

void OnNameChanged()
{
    if (Name.Length > 50)
    {
        Name = Name.Substring(0, 50);
        LogSomehow("Name truncated");
    }
}

关于c# - 在C#中使用Linq to Sql,有什么方法可以自动截断太长的数据吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3687559/

10-11 19:31
查看更多