Announcement

Collapse
No announcement yet.

Keine unterstützte Übersetzung in SQL!?

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Keine unterstützte Übersetzung in SQL!?

    Hallo,

    ich habe in meiner Anwendung vor kurzem das Repository Pattern umgesetzt, jedoch macht mir jetzt folgende Fehlermeldung ärger (wobei ich nicht 100%ig sicher bin, ob die von dem Pattern kommt):

    Für das Element "Td.Data.IFieldBuilding.MapUserId" gibt es keine unterstützte Übersetzung in SQL.
    Ich würde die Fehlermeldung so interpretieren, dass er das was ich machen will nicht in SQL übersetzen kann, bloss verstehe ich nicht warum... hier der ca. entsprechende Code:

    Folgende foreach Schleife:
    Code:
    foreach (IFieldBuilding FieldBuilding in FieldBuildings.Where(b => b.MapUserId == MapUser.Id))
    FieldBuildings ist von folgendem Typ: IQueryable<IFieldBuilding>

    IFieldBuilding:
    Code:
    public interface IFieldBuilding
    {
    	int BuildingId { get; }
    	int? MapUserId { get; }
    
    	IBuilding Details { get; }
    	IField Field { get; }
    }
    Die entsprechende Methode im aktuellen DataProvider:
    Code:
    public int? MapUserId
    {
    	get
    	{
    		return Fields.Single().MapUserId;
    	}
    }
    Fields ist hierbei ein Join in eine andere Tabelle.

    Wieso kann das ganze also nun nicht in SQL übersetzt werden?

    Danke im voraus,
    Markus

  • #2
    Hallo,

    wahrscheinlich da im Single() kein "Prädikat" angegeben ist das bestimmt was zurückgegeben werden soll. Single wird in SQL mit TOP 1 übersetzt, aber die Abfrage fehlt.

    Für eine genau Diagnose fehlen weitere Infos.

    mfG Gü
    "Any fool can write code that a computer can understand. Good programmers write code that humans can understand". - Martin Fowler

    Comment


    • #3
      Prädikat hat leider nicht geholfen. Aber konnte es doch selber lösen. Da das ganze eigentlich garnicht in SQL umgewandelt werden muss da ich vorher eh alle Datensätze hole habe ich jetzt einfach FieldBuildings in eine Liste umgewandelt und dadurch funzt jetzt alles.

      Danke,
      Markus

      Comment

      Working...
      X