LINQ do SQL insert-if-non-nie istnieje
Chciałbym wiedzieć, czy istnieje łatwiejszy sposób wstawienia rekordu, jeśli nie istnieje on już w tabeli. Nadal próbuję zbudować moje umiejętności LINQ do SQL.
Oto, co mam, ale wygląda na to, że powinien być łatwiejszy sposób.
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's read-only
db.SubmitChanges();
}
return record;
}