Our entire application has been using a long to store large number values.

Like so:

```cs
public class SomeClass
{
    public long CardNumber { get; set; }
}

```

This is stored as a `bigint` in Microsoft SQL Server.

Now in order to account for a value larger than a long's max value I'm changing the datatype to a `string` and `nvarchar` in SQL Server (open to a better solution).

We don't seem to be doing much arithmetic with the value already across the application.

But we have code like this:

```cs
var someObj = new SomeClass();
someObj.CardNumber = 1234;

```

So I don't want to have to manually change it to

```cs
var someObj = new SomeClass();
someObj.CardNumber = 1234.ToString();

```

Across the application..

I was thinking of doing something like this..

```cs
public class SomeClass
{
    private long cardnum;

    public string CardNumber
    {
        get { return cardnum.ToString(); }
        set { cardnum = ConvertToLong(value); }
    }
}

```

but what if I then want to set the card number to a value larger than the long max value....as the convert to long would break in the setter

I'm a bit lost as to what I should do here ...