private void CreateLackingElements(Alphabet libiadaAlphabet, int notationId)
{
var newElements = new List<Element>();
List<string> elements = (from IBaseObject element in libiadaAlphabet select element.ToString()).ToList();
var existingElements = db.Element.Where(e => elements.Contains(e.Value) && e.NotationId == notationId).Select(e => e.Value);
var notExistingElements = elements.Where(e => !existingElements.Contains(e)).ToList();
foreach (var element in notExistingElements)
{
var newElement = new Element
{
Value = element,
Name = element,
NotationId = notationId
};
newElements.Add(newElement);
}
db.Element.AddRange(newElements);
db.SaveChanges();
}