Студопедия

Главная страница Случайная страница

Разделы сайта

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






Сниппеты






Для IRepository таблиц, создадим table.snippet:

< CodeSnippets

xmlns=" https://schemas.microsoft.com/VisualStudio/2005/CodeSnippet" >

< CodeSnippet Format=" 1.0.0" >

< Header>

< Title>

Table

< /Title>

< Shortcut> Table< /Shortcut>

< /Header>

< Snippet>

< Declarations>

< Literal>

< ID> Table< /ID>

< ToolTip> Table name for create.< /ToolTip>

< Default> Table< /Default>

< /Literal>

< /Declarations>

 

< Code Language=" CSharp" >

<! [CDATA[

#region $Table$

 

IQueryable< $Table$> $Table$s { get; }

 

bool Create$Table$($Table$ instance);

 

bool Update$Table$($Table$ instance);

 

bool Remove$Table$(int id$Table$);

 

#endregion

]]>

< /Code>

< /Snippet>

< /CodeSnippet>

< /CodeSnippets>

Для SqlRepository создадим сниппет sqlTable.snippet:

< CodeSnippets

xmlns=" https://schemas.microsoft.com/VisualStudio/2005/CodeSnippet" >

< CodeSnippet Format=" 1.0.0" >

< Header>

< Title>

Sql repository

< /Title>

< Shortcut> sqltable< /Shortcut>

< /Header>

< Snippet>

< Declarations>

< Literal>

< ID> Table< /ID>

< ToolTip> Table name for create.< /ToolTip>

< Default> Table< /Default>

< /Literal>

< /Declarations>

 

< Code Language=" CSharp" >

<! [CDATA[

 

public IQueryable< $Table$> $Table$s

{

get

{

return Db.$Table$s;

}

}

 

public bool Create$Table$($Table$ instance)

{

if (instance.ID == 0)

{

Db.$Table$s.InsertOnSubmit(instance);

Db.$Table$s.Context.SubmitChanges();

return true;

}

 

return false;

}

 

public bool Update$Table$($Table$ instance)

{

$Table$ cache = Db.$Table$s.Where(p => p.ID == instance.ID).FirstOrDefault();

if (cache! = null)

{

//TODO: Update fields for $Table$

Db.$Table$s.Context.SubmitChanges();

return true;

}

 

return false;

}

 

public bool Remove$Table$(int id$Table$)

{

$Table$ instance = Db.$Table$s.Where(p => p.ID == id$Table$).FirstOrDefault();

if (instance! = null)

{

Db.$Table$s.DeleteOnSubmit(instance);

Db.$Table$s.Context.SubmitChanges();

return true;

}

 

return false;

}

]]>

< /Code>

< /Snippet>

< /CodeSnippet>

< /CodeSnippets>

Для того, чтобы добавить code-snippet. откроем TOOLS -> Code Snippet Manager… (Ctrl-K, B). В окне нажимаем Import и импортируем оба сниппета в My Code snippet:

Finish, OK.

Используем для таблиц User и UserRole.

Осталось прописать только поля для Update [имя таблицы], но это уже меньше работы.

Proxy

Как видим, классы, которые мы используем, являются partial, поэтому их можно дополнить. Создадим, подобно SqlRepository, папку Proxy, где будем размещать partial классы. Например, для класса User создадим метод, который автоматически генерирует строку, требуемую для активации пользователя:

public partial class User

{

public static string GetActivateUrl()

{

return Guid.NewGuid().ToString(" N");

}

}

Используем это:

public bool CreateUser(User instance)

{

if (instance.ID == 0)

{

instance.AddedDate = DateTime.Now;

instance.ActivatedLink = User.GetActivateUrl();

Db.Users.InsertOnSubmit(instance);

Db.Users.Context.SubmitChanges();

return true;

}

 

return false;

}






© 2023 :: MyLektsii.ru :: Мои Лекции
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав.
Копирование текстов разрешено только с указанием индексируемой ссылки на источник.