---
title: "Typcastning med Linqobjekt"
type: "forum-thread"
url: "https://www.webforum.nu/amne/dotnet/169697-typcastning-med-linqobjekt"
topic: ".NET"
topic_url: "https://www.webforum.nu/amne/dotnet"
author: "maqe"
published: "2008-03-07T19:06:47.000Z"
updated: "2008-03-08T15:06:44.000Z"
replies: 4
views: 478
page: 1
pages: 1
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/dotnet/169697-typcastning-med-linqobjekt"
---

# Typcastning med Linqobjekt

## #1 — maqe, 2008-03-07T19:06Z

Jag håller på med en enkel webbapplikation och testar lite Linq. Jag får problem när jag ska typa om ett objekt och tänket kollar om någon här har någon lösning på mitt problem. Nedan kommer lite kod med förklaring.

Item.cs (this is a auto generated file)

PageItem.cs ( This is a simple page class inheriting from Item.cs )

 

```
public class PageItem : Item {
 //Add som properties and stuff
}
```

Default.aspx.cs (A simple page inheriting from Page.cs)

```
public partial class _Default : Web.Page<PageItem> {
 //Do stuff 
}
```

Page.cs ( This will be my base class for easy access to some nifty stuff like CurrentPage)
 

```
public abstract class Page : System.Web.UI.Page where TPage : Item {
 public virtual TPage CurrentPage {
   get {
    MyDataContext db = new MyDataContext();
    return (TPage)db.Items.Single(p => p.ID == 1); // <- Problem
  }
 }
}
```

Koden ovan ger mig problem, det verkar som att man inte kan typa om ett objekt av typen Item till PageItem fast PageItem ärver från Item.
Så hur skulle jag kunna lösa detta på ett annat sätt?

Permalänk: https://www.webforum.nu/p/169697

## #2 — SPiN, 2008-03-07T20:12Z

Nej, det går inte. Däremot går det att typa om ett PageItem till ett Item. Man kan aldrig typa om till ett "barn" av en superklass - enbart föräldrar/superklass.

Permalänk: https://www.webforum.nu/p/2086765

## #3 — maqe, 2008-03-07T22:28Z

hm okay så jag kan aldrig typa om min basklass "Item" till ärvd klass "PageItem"?
Så hela konstruktionen är galen menar du?

Permalänk: https://www.webforum.nu/p/2086785

## #4 — maqe, 2008-03-08T14:12Z

Nu tror jag att jag förstått problemet. Problemet är att db.Items bara innehåller ContentItems och dom går inte att typa om till en subklass precis som du sa. Då är frågan om det går att göra så att Linq skapar instanser av rätt typ när mina Items skapas?

Permalänk: https://www.webforum.nu/p/2086876

## #5 — maqe, 2008-03-08T15:06Z

Jag har fått för mig om att jag måste använda IsDiscriminator = true på min typ som t.ex: 

```php
[Column(Storage = "_Type", DbType = "VarChar(255)", IsDiscriminator = true)]
```

Sedan måste jag nog använda InheritanceMapping för att skapa upp insansen av rätt typ.

```php
[InheritanceMapping(Code = "String", Type = typeof(dynamisk information från type kolumnen), IsDefault = true)]
```

Då är frågan hur jag kan sätta Type till värdet av min kolumn Type som är Discriminitor?

Permalänk: https://www.webforum.nu/p/2086886

---

Tråden på webben: https://www.webforum.nu/amne/dotnet/169697-typcastning-med-linqobjekt
