В дополнение к дополнению LinqPad My Extensions
King LinqPad My Extensions
:
public static IQueryable DumpNoLock(this IQueryable query)
{
using (var txn = GetNewReadUncommittedScope())
{
return query.Dump();
}
}
public static System.Transactions.TransactionScope GetNewReadUncommittedScope()
{
return new System.Transactions.TransactionScope(
System.Transactions.TransactionScopeOption.RequiresNew,
new System.Transactions.TransactionOptions
{
IsolationLevel = System.Transactions.IsolationLevel.ReadUncommitted
});
}
public static IQueryable DumpNoLock(this IQueryable query, string description)
{
using (var txn = GetNewReadUncommittedScope())
{
return query.Dump(description);
}
}
public static List ToListNoLock(this IQueryable query)
{
using (var txn = GetNewReadUncommittedScope())
{
return query.ToList();
}
}
public static U NoLock(this IQueryable query, Func,U> expr)
{
using (var txn = GetNewReadUncommittedScope())
{
return expr(query);
}
}
Последнее означает, что вы можете сделать NOLOCK
для любых оценочных запросов, у которых у вас нет NoLock
явно написано для (например, я получил для ToListNoLock
выше). Итак, например:
somequery.NoLock((x)=>x.Count()).Dump();
будет оценивать запрос с помощью NOLOCK
.
Обратите внимание, что вы должны убедиться, что вы оцениваете запрос. Например. .NoLock((x)=>x.Distinct()).Count().Dump()
ничего полезного ничего не сделает .Distinct().Count().Dump()
.
Проблема в вашем коде в том, что вы устанавливаете OnClickListener на одну и ту же кнопку два раза. Второй OnClickListener перезапишет первый. Поэтому нам нужно сделать это в одном OnClickListener. Пожалуйста, попробуйте ниже код
bak.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
EditText focusEditText=et1;
if (et1.hasFocus()) {
focusEditText=et1;
}
if (et2.hasFocus()){
focusEditText=et2;
}
String str = focusEditText.getText().toString();
if (str.length() > 1) {
str = str.substring(0, str.length() - 1);
focusEditText.setText(str);
} else if (str.length() <= 1) {
focusEditText.setText("");
}
}
});