Я хотел бы знать, есть ли более простой способ вставить запись, если она еще не существует в таблице. Я все еще пытаюсь создать свои навыки LINQ to SQL.
Вот что у меня есть, но похоже, что должен быть более простой способ.
public static TEntity InsertIfNotExists<TEntity>
(
DataContext db,
Table<TEntity> table,
Func<TEntity,bool> where,
TEntity record
)
where TEntity : class
{
TEntity existing = table.SingleOrDefault<TEntity>(where);
if (existing != null)
{
return existing;
}
else
{
table.InsertOnSubmit(record);
// Can't use table.Context.SubmitChanges()
// 'cause it read-only
db.SubmitChanges();
}
return record;
}