lign="justify">}
Лістинг 3.1. Клас Database, інкапсулюючий роботу з базою даних
Клас Database визначає поле database типу DatabaseEntities. Цей тип є класом, що надають функціональність EntityFramework - відображення таблиць фізичної бази даних на набір класів, що містять методи для маніпулювання даними.
Листинги 3.2, 3.3 і 3.4 демонструють додавання в базу нової статті і зміна або видалення існуючої.
publicboolAddItem (ItemaddItem)
{success=false;
{= (from t indatabase.Titles.title == addItem.Journalt). SingleOrDefault ();=(from a indatabase.Authors.author == addItem.Authora). SingleOrDefault ();= (from y indatabase.Years.year == addItem.Yeary). SingleOrDefault ();=(from j indatabase.Journals
(j.Title.title == addItem.Journal &&. Year.year == addItem.Year &&. issue == addItem.Issue) j). SingleOrDefault (); article =newArticle
{
Journal=(hasJournal == null?
{
Title=(hasTitle == null? newTitle {title=addItem.Journal}: hasTitle),
Year=(hasYear == null? newYear {year=addItem.Year}: hasYear),=addItem.Issue
}
: hasJournal),
Author=(hasAuthor == null? newAuthor {author=addItem.Author}: hasAuthor),=addItem.Article,=addItem.Keywords,=addItem.Page,=addItem.Date
};. Articles.AddObject (article);. SaveChanges ();=true;
} (Exception ex)
{. Show (ex.Message);=false;
}
returnsuccess;
}
Лістинг 3.2. Додавання нової статті в базу
publicboolEditItem (ItemeditItem)
{success=false;
{article=(from a indatabase.Articles.id_article == editItem.Ida). Single ();=(from t indatabase.Titles.title == editItem.Journalt). SingleOrDefault (); =(from a indatabase.Authors.author == editItem.Authora). SingleOrDefault ();=(from y indatabase.Years.year == editItem.Yeary). SingleOrDefault ();=(from j indatabase.Journals
(j.Title.title == editItem.Journal &&. Year.year == editItem.Year &&. issue == editItem.Issue) j). SingleOrDefault ();. Journal=(hasJournal == null?
{
Title=(hasTitle == null? newTitle {title=editItem.Journal}: hasTitle),
Year=(hasYear == null? newYear {year=editItem.Year}: hasYear),=editItem.Issue
}
: hasJournal);. Author=(hasAuthor == null? newAuthor {author=editItem.Author}: hasAuthor);. title=editItem.Article;. keywords=editItem.Keywords;. page= editItem.Page;. date=editItem.Date;. SaveChanges ();
=true;
} (Exception ex)
{. Show (ex.Message);=false;
}
returnsuccess;
}
Лістинг 3.3. Зміна існуючої статті в базі
publicboolDeleteItem (ItemdeleteItem)
{success=false;
{article=(from a ind...