Laden...

Forenbeiträge von Icer Ingesamt 9 Beiträge

12.04.2010 - 12:46 Uhr

Hi,

ich vermute beim Safe Cast mit as Enumerable<DataRow> erhältst du null zurück, da du nunmal einen anonymen Typen erstellst und der nunmal keine DataRow ist. Entweder erstellst du jetzt eine DTO Klasse welche die Informationen weitertransportiert oder du machst dich schlau wie man eine query mit anonymen Typen in eine DataTable castet. 😉 Wenn du natürlich keine DataRow hast, dann kannst du auch nicht die ExtensionMethod CopyToDataTable nutzen. Also: per Hand machen! 😃

Per Hand: (in etwa...)


var query = from products in db.Products select new { 
                                              products.SNr,
                                              products.ItemNr,
                                              products.Desc};
DataTable dt = new DataTable();
//InitColumns - Wie auch immer! ;)
foreach(var product in query)
{
dt.Rows.Add(new object[]{producst.SNr, products.ItemNr, products.Desc});
}

So long...

30.03.2010 - 10:49 Uhr

Schaue dir doch mal ein paar der Dokumente von Parallel Computing with Managed Code an.

Wenn du die Möglichkeite hast .Net 4.0 oder allgemein Parallels zu nutzen dann hast du viele Möglichkeiten Multithreading zu nutzen.

Lg

15.03.2010 - 21:34 Uhr

Linq2SQL kann auch die Tabellen für dich generieren.

Lg

15.03.2010 - 15:16 Uhr

Kein Problem. 😃

All ist natürlich die richtige Lösung. Das kommt davon wenn man eben mal schnell was schreibt. 😉

15.03.2010 - 14:18 Uhr

Wie wäre es mit Any?
(Weil ich lieber mit Lambda Expressions arbeite nicht wundern...)


if(filterArray.Any(faItem=>c.Text.Contains(faItem)))
{
//Do whatever you want to do...
}

Lg
Andre

13.03.2010 - 13:28 Uhr

Du könntest einen ORMapper nutzen um die Datenbanktabellen auf Entities zu mappen. Dann würde der Mapper das Initialisieren der Daten für dich übernehmen. Wäre das nichts für dich dann bleibt dir wohl nichts anderes übrig als die Entities einzeln zu initialisieren und in irgendeiner Art und Weise zwischenzuspeichern.

Wenn du ein einzelnes Entity brauchst dann musst du dir entsprechend die Funktion bauen. Ich stelle mit das so vor:


public IEnumerable<BeispielObjekt> GetAllBeispielObjekte()
{
//DataReader usw initialiseren...
while(dr.Read())
{
yield return new BeispielObjekt(dr["Attr1"],dr["Attr2"]);
}
}
//und
public BeispielObjekt GetBeispielObjektById(Guid id)
{
//DataReader usw initialisieren... mit filter auf id...
return new BeispielObjekt(dr["Attr1"],dr["Attr2"]);
}

Hoffe ich konnte dir eine einigermassen gute Idee geben.

Lg

12.03.2010 - 10:41 Uhr

Schaue dir bitte diesen Link an. Speziell die Sektion über Postbacks.

Es Gab auch in einer der letzten dot.net Ausgaben einen Artikel darüber wie man das am besten designed wenn ich mich recht erinnere.

Lg
Andre

12.03.2010 - 10:36 Uhr

Normalerweise hast du ja das dbml Modell benutzt um die Entitäten zu erstellen, oder?
Wenn du in der Datenbank ForeignKey Beziehungen definiert hast, dann zeigt er im Modell Linien an, an den Linien kannst du einstellen ob die Referenzierten Entitäten mitgeladen werden sollen und wie sie geladen werden sollen. Über DataLoadOptions kannst du einstellen ob die referenzierten Entitäten Lazy geholt werden sollen oder direkt.

Suche bei Google:
LINQ2SQL Repository Pattern LoadOptions

Lg

11.03.2010 - 22:10 Uhr

Ich denn recht in der Annahme dass du LINQ2SQL nutzt?
Oder was für eine Art von DataContext ist das?

Wenn es LINQ2SQL ist dann würde ich mir an deiner Stelle mal das Repository Pattern anschauen.

Kleines Beispiel:


public class Repository<T> : IRepository<T>
{
private DataContext _dataContext;
//Eine Menge Code hier...
public IQueryable<T> GetAll()
{
return _dataContext.GetTable<T>().AsQueryable();
}
}

Natürlich könnt Ihr Rechtschreibfehler behalten. Dieser Code ist nicht getestet, aber ich habe Ihn in mehreren Projekten so oder so ähnlich in Produktivem Betrieb. Natürlich gibt es jetzt noch eine Vielzahl von weiteren Methoden die man generisch schreiben sollte.

Wenn du z.B. zu einem Produkt jetzt alle Bestellungen haben willst dann solltest du das in deinen Entitäten regeln. Da gibt es mehrere Modelle für. Je nachdem wie du dein Klassenmodell aufgebaut hast.

LG