LINQ to SQL и неизменность - PullRequest
5 голосов
/ 03 ноября 2010

Я пытаюсь использовать LINQ to SQL.Everythign прекрасно работает, но кажется, что он не дружит с неизменяемыми объектами.

LINQ to SQL требует от меня создания конструктора без параметров для моего неизменяемого класса.Но я хочу, чтобы он был неизменным, поэтому я хочу, чтобы люди могли создавать его только со всеми необходимыми параметрами каждый раз.

Точно так же мне нужно, чтобы на всех моих членах были сеттеры.

Можно ли использовать LINQ 2 SQL, не отказываясь от своей неизменности?мой код:

DataContext db = new DataContext("myconnectistring");
Table<MyImmutableType> myImmutableObjects = db.GetTable<MyImmutableType>();

Он выдаст исключения об отсутствии установщика и конструктора по умолчанию без параметров.

1 Ответ

3 голосов
/ 03 ноября 2010

Вы можете создавать типы без этого ctor и просто использовать селектор для проецирования в них.Поскольку вы, очевидно, не используете обновления и т. Д., Не должно иметь значения, что они не являются частью модели генерации:

from cust in db.Customers
     ...
     select new ImmutableCust(
         cust.Id, cust.Name, ...);

(где ImmutableCust не является частью модели L2S)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...