Есть потребность простом запросе на проверку данных.
Найти примеров не смог и есть ли они вообще.
.Column("StartDate")
.From("CurrencyRate")
.Where("StartDate").IsEqual(Column.Const(_date)).Execute() > 0)
{
// код
}
Как я понимаю можно так?
Нравится
Если это серверная логика, то так:
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 {
Да, верно. Но так вы проверяете вчерашний день. Для сегодняшнего нужно брать промежуток от сегодня до завтра.