Det underlige er at jeg sagtens kan få de 4 frem jeg IKKE er interesseret i, men jeg kan ikke få de 3 frem jeg gerne vil... og efter at have søgt på google tror jeg desværre bare jeg må konstatere at det er umuligt med linq, desværre.
Løser hvad du sprøger om ... og så napper du selv point ... fair nok.
Uden at kende din kode, vil jeg da mene det er en super ikke optimal måde at løse det på, end hvad du skulle have haft løst ... lader som om du har valgt et kompromi.
1> SELECT * 2> FROM spm833262 3> GO id nickname type ----------- -------------------- ---------- 1 sykofanten kommentar 2 buzzzz kommentar 3 sykofanten svar
(3 rows affected) 1> 2> -- positiv 3> SELECT nickname 4> FROM spm833262 5> WHERE type='svar' 6> GO nickname -------------------- sykofanten
(1 row affected) 1> 2> -- negativ forkert 3> SELECT nickname 4> FROM spm833262 5> WHERE type<>'svar' 6> GO nickname -------------------- sykofanten buzzzz
(2 rows affected) 1> 2> -- negativ rigtig 3> SELECT nickname 4> FROM spm833262 5> WHERE nickname NOT IN (SELECT nickname FROM spm833262 WHERE type='svar') 6> GO nickname -------------------- buzzzz
using System; using System.Linq; using System.Data.Linq; using System.Data.Linq.SqlClient; using System.Data.Linq.Mapping; using System.Data.SqlClient;
namespace E { [Table(Name="spm833262")] public class Spm833262 { [Column(IsPrimaryKey=true)] public int Id; [Column] public string Nickname; [Column] public string Type; } public class Program { public static void Main(string[] args) { SqlConnection con = new SqlConnection(@"Server=ARNEPC3\SQLEXPRESS;Integrated Security=SSPI;Database=Test"); DataContext db = new DataContext(con); Table<Spm833262> spm833262 = db.GetTable<Spm833262>(); // positiv var q1 = from indlaeg in spm833262 where indlaeg.Type == "svar" select indlaeg.Nickname; Console.WriteLine("Positiv:"); foreach(var nn in q1) Console.WriteLine(" " + nn); // negativ forkert var q2 = from indlaeg in spm833262 where indlaeg.Type != "svar" select indlaeg.Nickname; Console.WriteLine("Negativ forkert:"); foreach(var nn in q2) Console.WriteLine(" " + nn); // negativ rigtig var q3 = from indlaeg in spm833262 where !(from indlaeg2 in spm833262 where indlaeg2.Type == "svar" select indlaeg2.Nickname).Contains(indlaeg.Nickname) select indlaeg.Nickname; Console.WriteLine("Negativ rigtig:"); foreach(var nn in q3) Console.WriteLine(" " + nn); Console.ReadKey(); } } }
-- negativ forkert SELECT nickname FROM spm833262 WHERE type<>'svar' GO
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.