Tôi muốn biết nếu có cách nào dễ dàng hơn để chèn bản ghi nếu nó chưa tồn tại trong bảng. Tôi vẫn đang cố gắng xây dựng các kỹ năng LINQ to SQL của mình.LINQ to SQL chèn-nếu-không tồn tại
Đây là những gì tôi có, nhưng có vẻ như phải có một cách dễ dàng hơn.
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;
}
e => e.BooleanProperty là gì? Các thực thể không có thành viên BooleanProperty. Tôi chưa bao giờ thấy điều này trước đây ... – core
Hmm, bạn sẽ nhận thấy rằng trong mã của tôi, tôi đã nói rằng table.Context.SubmitChanges() không hoạt động vì nó chỉ nhận được. Dường như tôi đã phạm sai lầm. – core
e => e.BooleanProperty chỉ là một ví dụ. Nó có thể đứng cho bất kỳ biểu thức nào trả về một giá trị boolean. –