Rzutowanie selecta z datetime

Rzutowanie selecta z datetime

Wątek przeniesiony 2016-10-10 19:27 z C# i .NET przez DibbyDum.

DA
  • Rejestracja:ponad 9 lat
  • Ostatnio:około 6 lat
  • Postów:12
0

Witam,

Potrzebuję select, który będzie rzutował mi produkty nie starsze niż 14 dni w c#...

Kopiuj
var skleps2 = from z in db.Sklep where z.ReleaseDate > DateTime.Now-14;

Nie mam pomysłu jak zrobić tak, żeby mi wyświetlił nowości nie starsze niż 14 dni od ReleaseDate

Prośba o wsparcie,

Pozdrawiam,
Człowiek-Murzyn

edytowany 1x, ostatnio: flowCRANE
DibbyDum
  • Rejestracja:ponad 12 lat
  • Ostatnio:ponad rok
  • Lokalizacja:Polska, Kraków
0
Kopiuj
DateTime.Now.AddDays(-14)

?


Yubby dibby dibby dibby dibby dibby dibby dum..
DA
  • Rejestracja:ponad 9 lat
  • Ostatnio:około 6 lat
  • Postów:12
0

tak chyba działa zaraz spróbuje rzutować

abrakadaber
abrakadaber
  • Rejestracja:ponad 12 lat
  • Ostatnio:8 miesięcy
  • Postów:6610
0

ale co ty tam chcesz rzutować???


Chcesz pomocy - pokaż kod - abrakadabra źle działa z techniką.
DA
  • Rejestracja:ponad 9 lat
  • Ostatnio:około 6 lat
  • Postów:12
0
Kopiuj
skleps = from h in db.Sklep
                                 where h.ReleaseDate > DateTime.Today.AddDays(-14)
                                 select h;

prosba o wsparcie, nie dziala. Cos jest nie tak z

Kopiuj
DateTime.Today.AddDays(-14)
edytowany 1x, ostatnio: DibbyDum
S7
  • Rejestracja:około 12 lat
  • Ostatnio:ponad 5 lat
  • Postów:287
1

Jakiś error dostajesz? Napisz jaki? Może winno tak być?

darkfurby napisał(a):

var skleps = from h in db.Sklep
where h.ReleaseDate > DateTime.Today.AddDays(-14)
select h;

prosba o wsparcie, nie dziala. Cos jest nie tak z "DateTime.Today.AddDays(-14)"

Winno działać:

Kopiuj
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text.RegularExpressions;

namespace Rextester
{
    public class Sklep      
    {        
        
        public int SklepID {get; set;}
        public string SklepName {get; set;} 
        public DateTime SklepDate {get; set; }
    }
    
    public class Program
    {      
        public static void Main(string[] args)
        { 
            
            List<Sklep> list = new List<Sklep>();
            list.Add(new Sklep{ SklepID = 1, SklepName = "AA", SklepDate = new DateTime(2016,10,10)});
            list.Add(new Sklep{ SklepID = 2, SklepName = "BB", SklepDate = new DateTime(2016,10,11)});
            list.Add(new Sklep{ SklepID = 3, SklepName = "CC", SklepDate = new DateTime(2016,09,26)});
            
            var t = from s in list where s.SklepDate > DateTime.Today.AddDays(-14) select s;
      
            foreach (var u in t)
            {
                Console.WriteLine("{0}. {1}", u.SklepID, u.SklepName);            
            }
                      
        }
    }
}
somekind
No, na zupełnie innym kodzie działa - ale to jakoś nie dziwi.
S7
Zgadza się, chwilowo nie mam dostępu do bazy a pisałem za pomocą C# online, na szybko. Pośrednio może spróbować i stworzyć listę jw. a potem za pomocą Entity (db.Sklep.ToList()) ściągnąć sklepy do tej listy i z tej listy wybrać/wyświetlić te, które go interesują. Czy zadziała? Nie wiem. Nie mam jak sprawdzić póki co.
somekind
No i pobrać milion rekordów, gdy potrzebuje tylko 10?
S7
No jest to minus i to duży.
somekind
Moderator
  • Rejestracja:około 17 lat
  • Ostatnio:5 dni
  • Lokalizacja:Wrocław
0

Problem pewno polega na tym, że LINQ provider dla ORMa/bazy nie obsługuje porównywania dat.

DA
  • Rejestracja:ponad 9 lat
  • Ostatnio:około 6 lat
  • Postów:12
0
somekind napisał(a):

Problem pewno polega na tym, że LINQ provider dla ORMa/bazy nie obsługuje porównywania dat.

ok czyli nie rozumiem?

somekind
Moderator
  • Rejestracja:około 17 lat
  • Ostatnio:5 dni
  • Lokalizacja:Wrocław
0

Ja też nie. Nawet nie wkleiłeś treści błędu.

edytowany 1x, ostatnio: somekind
S7
  • Rejestracja:około 12 lat
  • Ostatnio:ponad 5 lat
  • Postów:287
1

Spróbuj

Kopiuj
DateTime dt = DateTime.Today.AddDays(-14);
var skleps = (from s in db.Sklep where s.ReleaseDate > dt select s).ToList();
edytowany 1x, ostatnio: szymon7500
somekind
Proste i może zadziałać. :)
S7
Zrobiłbym tak: db.Sklep.Where(..).ToList(). Nie chciałem za bardzo zmieniać.

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.