Все, что вам нужно сделать, - это найти (с помощью linq) автора с таким идентификатором.
Метод Where()
вернет коллекцию авторов, которая вам нужна, поэтому вы используете FirstOrDefault()
, которыйвозвращает первый элемент или ноль, если ничего нет.Вы также можете использовать SinglOrDefault
, который выдает исключение, если в списке более одного элемента, или просто возвращает этот элемент.
Кажется, у @Jacob отличный, более эффективный подход!
var author = publishContext.Authors.Where
(a=>a.AuthodSSID == 10).FirstOrDefault();
if(author == null) //none exist
{//don't bother creating one unless you need to..
Author newAuthor = new Author();
newAuthor.FirstName = firstName.Text;
newAuthor.LastName = lastName.Text;
newAuthor.AuthodSSID = 20;
newAuthor.AuthorID = 10
publishContext.AddToAuthor(newAuthor);//insert if does not exist
}