Как настроить свойства на объекте Linq2SQL?

Process.GetCurrentProcess().ProcessorAffinity = (System.IntPtr)2; 
1
задан MalcomTucker 19 June 2009 в 20:07
поделиться

4 ответа

Не генерировать код автоматически. Вы можете создать свои собственные классы linq в sql без использования конструктора.

Edit: Мой ленивый способ сделать это - автоматически сгенерировать код, скопировать и вставить его в несгенерированный файл и удалить файлы конструктора. Однако решать вам.

1
ответ дан 3 September 2019 в 01:20
поделиться

Классы Linq2SQL - это частичные классы , что означает, что вы можете легко расширить их, добавив свой собственный отдельный файл и объявив там другую часть частичного класса.

В этом файле вы можете настроить класс по мере необходимости - и поскольку это отдельный файл, генерация кода не будет его перезаписывать.

Если вы посмотрите, например, на класс «Контакт» в базе данных AdventureWorks, Linq2SQL сгенерирует его в ваш файл AdventureWorks.designer.cs:

[Table(Name="Person.Contact")]
public partial class Contact : INotifyPropertyChanging, INotifyPropertyChanged
{

Теперь вы можете добавить файл «Contact.cs» в свой проект и расширить этот частичный класс, например, введя новое свойство «DisplayName»:

public partial class Contact 
{
       public string DisplayName
       {  
          get { return string.Format("{0} {1}", FirstName, LastName); }
       }
    }

Во время компиляции эти две части класса объединяются вместе.

Другая часть - это частичные методы - методы, которые вы можете реализовать, но если они 'если они не реализованы, их вызовы оптимизируются компилятором.

Для каждого класса объектов в Linq2SQL создается целый ряд частичных методов (новая функция в .NET 3.0) - их можно реализовать !

partial void InsertContact(Contact instance);
partial void UpdateContact(Contact instance);
partial void DeleteContact(Contact instance);

partial void OnLoaded();
partial void OnValidate(System.Data.Linq.ChangeAction action);
partial void OnCreated();

partial void OnFirstNameChanging(string value);
partial void OnFirstNameChanged();

partial void OnLastNameChanging(string value);
partial void OnLastNameChanged();

Множество точек расширения!

Марк

1
ответ дан 3 September 2019 в 01:20
поделиться

Проверьте это:

Это НАМНОГО лучше, чем sqlmetal (который дизайнер использует для генерации кода)

http://plinqo.com/default.aspx?AspxAutoDetectCookieSupport=1

Требуется Лицензия хоть и есть, но ИМХО оно того стоит.

0
ответ дан 3 September 2019 в 01:20
поделиться

Поскольку объекты Linq2Sql не запечатаны, вы можете быть производным от класса Linq2Sql и вносить изменения в производном классе.

В своих проектах я бы не стал вносить никаких изменений в класс Linq2Sql. Вместо этого я создаю свой собственный набор POCO, который могу адаптировать к своим потребностям. Затем я использую Linq2Sql только для заполнения / сохранения моих POCO с использованием шаблона репозитория.

Роб Коннери опубликовал в своем блоге отличную серию веб-трансляций под названием ASP.NET MVC Storefront.

0
ответ дан 3 September 2019 в 01:20
поделиться
Другие вопросы по тегам:

Похожие вопросы: