Есть ли способ использовать пользовательский тип данных в сущности, возвращаемой Linq в SQL?
Скажем, у меня есть такой тип данных:
public struct CustomerNumber : IEquatable<string>
{
private string _value;
public static implicit operator CustomerNumber(string value)
{
return new CustomerNumber { _value = value };
}
...
}
Он также определяет операторы для ==! = И т. Д.
Когда я пытаюсь заменить одно из свойств в возвращаемом объекте, я получаю исключение Invalid cast from 'System.String' to 'CustomerNumber'
, даже если вы можете назначить CustomerNumber из строки.
Это невозможно или я что-то не так делаю?
Редактировать - Уточнение:
CustomerNumber
используется в качестве типа данных для объекта, который генерируется Linq to SQL. Исключение возникает при попытке запроса к базе данных. Это не то, что я пытаюсь разыграть, а где-то внутри магии LinqToSQL что-то идет не так.
Мой код выглядит примерно так:
var customers = DataContext.Customers;
Edit:
Оказывается, что если ваша структура реализует явный оператор, он работает или, скорее, он работает со структурой, которая реализует явный оператор для преобразования из строки в тип, но не для преобразования из System.Int32 к типу.
Редактировать еще раз: все равно не работает.