Article View: pl.comp.bazy-danych.msaccess
Article #137009Re: Linia czasu zestawu danych
From: Maciej Tokarz
Date: Thu, 17 Sep 2015 21:29
Date: Thu, 17 Sep 2015 21:29
95 lines
4328 bytes
4328 bytes
Witaj!
Tak to jest jak się kombinuje przed poranną kawką ;-)
Wybrałem wariant jak poniżej (przepraszam, że zaśmiecę grupę inną składnią).
Generalnie co ważne, a również podkreśliłeś, mam możliwość kontrolowania momentu wdrożenia określonej wartości:
public sealed class Shift
{
[DatabaseGenerated(DatabaseGeneratedOption.None)]
public int Id { get; set; }
public int Alias { get; set; }
[StringLength(5)]
public string Sign { get; set; }
public bool IsValid { get; set; }
}
public sealed class ShiftValue
{
[Key]
[Column(Order = 0)]
[DatabaseGenerated(DatabaseGeneratedOption.None)]
public int ShiftId { get; set; }
[Key]
[Column(Order = 1, TypeName = "date")]
public DateTime ValidFrom { get; set; }
[Column(TypeName = "date")]
public DateTime? ValidTo { get; set; }
public TimeSpan Start { get; set; }
public TimeSpan Finish { get; set; }
public Guid CreatedBy { get; set; }
[Column(TypeName = "smalldatetime")]
public DateTime Created { get; set; }
public Shift Shift { get; set; }
}
i przykład wykorzystania:
var shiftValue = ShiftValuesSource.First(x => x.ShiftId == id && D >= x.ValidFrom && D <= (x.ValidTo ?? DateTime.MaxValue));
var s = shiftValue.Start;
var f = shiftValue.Finish;
Dane wyglądają tak:
context.Shifts.AddOrUpdate(x => x.Id,
new Shift()
{
Id = 1,
Alias = 76,
Sign = "I",
IsValid = true
},
new Shift()
{
Id = 2,
Alias = 77,
Sign = "II",
IsValid = true
},
context.ShiftValues.AddOrUpdate(x => x.ValidFrom,
new ShiftValue()
{
ShiftId = 1,
ValidFrom = new DateTime(2013,1,1),
ValidTo = null,
Start = new TimeSpan(6, 0, 0),
Finish = new TimeSpan(14, 0, 0),
CreatedBy = new Guid("87ef9940-af60-4002-9944-012a930148b5"),
Created = new DateTime(2015, 3, 21)
},
new ShiftValue()
{
ShiftId = 2,
ValidFrom = new DateTime(2013, 1, 1),
ValidTo = null,
Start = new TimeSpan(14, 0, 0),
Finish = new TimeSpan(22, 0, 0),
CreatedBy = new Guid("87ef9940-af60-4002-9944-012a930148b5"),
Created = new DateTime(2015, 3, 21)
},
Widzę, że nie tylko ja śledzę grupę :)
Serdecznie pozdrawiam,
Maciej
Technical Details
Message-ID:
<b846f508-c0ae-4adb-bb16-5b634749525d@googlegroups.com>Path:
mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!newsfeed.pionier.net.pl!feeder.erje.net!1.eu.feeder.erje.net!usenet.blueworldhosting.com!feeder01.blueworldhosting.com!border2.nntp.dca1.giganews.com!nntp.giganews.com!kq10no5760750igb.0!news-out.google.com!n2ni4085igy.0!nntp.google.com!kq10no4339241igb.0!postnews.google.com!glegroupsg2000goo.googlegroups.com!not-for-mailReferences:
<mtddld$75o$1@node2.news.atman.pl> <mtdvdh$9ci$1@news.albasani.net>Show Full Headers
Complete Article Headers
X-Received: by 10.182.233.195 with SMTP id ty3mr1392065obc.44.1442525344292; Thu, 17 Sep 2015 14:29:04 -0700 (PDT) X-Received: by 10.50.79.193 with SMTP id l1mr85077igx.2.1442525344263; Thu, 17 Sep 2015 14:29:04 -0700 (PDT) Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!newsfeed.pionier.net.pl!feeder.erje.net!1.eu.feeder.erje.net!usenet.blueworldhosting.com!feeder01.blueworldhosting.com!border2.nntp.dca1.giganews.com!nntp.giganews.com!kq10no5760750igb.0!news-out.google.com!n2ni4085igy.0!nntp.google.com!kq10no4339241igb.0!postnews.google.com!glegroupsg2000goo.googlegroups.com!not-for-mail Newsgroups: pl.comp.bazy-danych.msaccess Date: Thu, 17 Sep 2015 14:29:03 -0700 (PDT) In-Reply-To: <mtdvdh$9ci$1@news.albasani.net> Complaints-To: groups-abuse@google.com Injection-Info: glegroupsg2000goo.googlegroups.com; posting-host=90.156.11.59; posting-account=woTZnAoAAACPjq3QRgCnaqbKSP8vIc3U NNTP-Posting-Host: 90.156.11.59 References: <mtddld$75o$1@node2.news.atman.pl> <mtdvdh$9ci$1@news.albasani.net> User-Agent: G2/1.0 MIME-Version: 1.0 Message-ID: <b846f508-c0ae-4adb-bb16-5b634749525d@googlegroups.com> Subject: Re: Linia czasu zestawu danych From: Maciej Tokarz <mactok@my-poi.pl> Injection-Date: Thu, 17 Sep 2015 21:29:04 +0000 Lines: 101 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit