0
発生した場合にのみ:を挿入し、私は次の表の持っている状態
Votation
Id: PK
Title: string
Expiration: DateTime
をVotationOptions
Id: PK
Option: string
VotationId: FK
ユーザーはその間Votation.ExpirationはしていないVotationOptionを挿入することができます期限切れ。
生産時に有効期限が切れていない可能性があり、オプションが実際にデータベースに挿入されて有効期限が切れている可能性があるため、有効期限を確認できません。
マイコード:
if (this.context.Votations.First(vot => vot.Id == 1 && vot.Expiration < DateTime.Now == null) return BadRequest();
var option = new VotationOption
{
Option = "Example",
VotationId = 1
};
this.context.VotationOptions.Add(option);
this.context.SaveChanges();
私はこれをしたい:
this.context.VotationOptions.AddWhere(option, vot => vot.Expiration < DateTime.Now);
あなたと哲学的な話をしましょう:締め切りの1秒前に「投票」をクリックし、サーバーに5秒遅れて締め切りから4秒後にデータベースに挿入された場合、まだ時間内に投票する?コード内で期限切れであるかどうかをチェックし、有効期限前にメソッドが起動した場合は書き込みを実行します(そうでない場合は、データベースレベルの制約が適用される必要があります)。 –
_could_必要な_syntax_を与えるために、拡張メソッドを 'VotationOptions'(または基本タイプ)の型に追加します。しかし、実際のコードをきれいにするために何も組み込まれていません。拡張メソッド。 –