Есть потребность простом запросе на проверку данных.
Найти примеров не смог и есть ли они вообще.

if(new Select(userConnection)
                                                .Column("StartDate")
                                                .From("CurrencyRate")
                                                .Where("StartDate").IsEqual(Column.Const(_date)).Execute() > 0)
{
  // код
}

Как я понимаю можно так?

Нравится

7 комментариев

Если это серверная логика, то так:

if ((new Select(UserConnection).Column(Func.Count("Id")).From("ActivityCorrespondence").Where("ActivityId").IsEqual(Column.Parameter(Entity.ActivityId)) as Select).ExecuteScalar<int>() > 0) {
//...
}

Также учтите, что поле «StartDate» хранит дату-время, поэтому на равенство сравнивать нет смысла, нужно взять интервал двух дат начала и конца периода (то есть дня) и сравнивать при помощи «IsLessOrEqual» и «IsGreaterOrEqual».

Вышла ошибка как только переделал

UserConnection является тип но используется как переменная

if ((new Select(UserConnection)
.Column(Func.Count("Rate"))
.From("CurrencyRate")
.Where("StartDate").IsLessOrEqual(Column.Const(_today))
.And("StartDate").IsGreaterOrEqual(Column.Const(_yesterday))
.ExecuteScalar() > 0))
{
return "That date already exists!";
} else {

Напишите с маленькой буквы.

Нашел ошибку в коде
Но ошибка все равно выходит

Чтобы ошибка не выходила, её нужно исправить.

Мой косяк.
Спасибо, заработало.

DateTime _today = DateTime.Today;
				DateTime _yesterday = DateTime.Today.AddDays(-1);
				var userConnection = (UserConnection)HttpContext.Current.Session["UserConnection"];
 
				var entityRowCount = (new Select(userConnection)
						.Column(Func.Count("Rate"))
						.From("CurrencyRate")
						.Where("StartDate").IsLessOrEqual(Column.Const(_today))
							.And("StartDate").IsGreaterOrEqual(Column.Const(_yesterday))
						as Select).ExecuteScalar<int>();
				if ( entityRowCount > 0) 
				{
					return "That date already exists!";
				} else {

Да, верно. Но так вы проверяете вчерашний день. Для сегодняшнего нужно брать промежуток от сегодня до завтра.

Показать все комментарии