---
title: "Wilson ORMapper"
type: "forum-thread"
url: "https://www.webforum.nu/amne/dotnet/111382-wilson-ormapper"
topic: ".NET"
topic_url: "https://www.webforum.nu/amne/dotnet"
author: "icaaq"
published: "2004-09-12T05:59:07.000Z"
updated: "2004-10-19T20:18:06.000Z"
replies: 36
views: 923
page: 1
pages: 2
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/111382-wilson-ormapper"
---

# Wilson ORMapper

_Sida 1 av 2._

## #1 — icaaq, 2004-09-12T05:59Z

Tjenare.
Jag har laddat hem Wilson ORMapper och jag tror att jag behöver lite hjälp med att komma igång.

Jag hade tänkt att jag skulle fylla en datagrid med ett ObjectSet. Jag har gjort följande.

Skapat en mappings.config, skapat alla olika klasserna och även skapat en Manager.cs

Sen testar jag följande i \*.aspx.cs

```
[red]
		protected System.Web.UI.WebControls.DataGrid DataGrid1;
		public static ObjectSpace Manager;
		private void Page_Load(object sender, System.EventArgs e)
		{			
			[b]ObjectSet contacts = Manager.GetObjectSet(typeof(Category), string.Empty);[/b]
			DataGrid1.DataSource = contacts;
			DataGrid1.DataBind();
			// Put user code to initialize the page here
		}
[/red]
```

men jag får **System.NullReferenceException: Object reference not set to an instance of an object.**
 på den feta raden

Kan jag inte använda den på detta viset.

mv icaaq

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

## #2 — Gladh, 2004-09-12T08:06Z

```
public static ObjectSpace Manager;
```

Borde du inte skapa en instans av objectspace

```
public static ObjectSpace Manager = new ObjectSpace();
```

Har dock aldrig sysslat med Wilsons så den kanske använder sig av static Methods, men så fall borde raden inte behövas.

\- M

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

## #3 — icaaq, 2004-09-12T08:21Z

Jag tror att den använder sig av static methods.... så här ser Manager.cs ut nu

```
[red]
using System;
using System.Configuration;
using Wilson.ORMapper;

namespace spira.Data
{
	sealed public class Manager
	{
		private static ObjectSpace engine;

		public static ObjectSpace Engine
		{
			get { return Manager.engine; }
		}

		static Manager() {
			string mappingFile =AppDomain.CurrentDomain.BaseDirectory + @"Mappings.config";
			string connectString = @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Documents and Settings\Isac Backlund\Skrivbord\WilsonORMapperDemo\WilsonORMapperDemo\northwinddemo.mdb";
			string providerType = "Access";

			Provider provider;
			try { provider = (Provider) System.Enum.Parse(typeof(Provider), providerType, true); }
			catch { provider = Provider.MsSql; }

			// Note: Non-Zero Session is needed for Server Applications like Web
			engine = new ObjectSpace(mappingFile, connectString, provider, 20, 5);
		}

		private Manager()
		{
			// Note: Static Class -- All Members are Static
		}
	}
}
[/red]
```

blir du klokare av det :OO

mv icaaq

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

## #4 — PDahlen, 2004-09-12T09:45Z

Min gissning är att det är contacts som behöver skapas som ett New Objectset, precis som man måste göra med vanliga DataSet.
Så sätt dit ett = New Objectset innan du försöker fylla contacts.

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

## #5 — icaaq, 2004-09-12T10:29Z

Gör jag så här

```
[red]
public class WebForm1 : System.Web.UI.Page
	{

		protected System.Web.UI.WebControls.DataGrid DataGrid1;
		public static ObjectSpace Manager;
		[b]public ObjectSet contacts = new ObjectSet();[/b]
		private void Page_Load(object sender, System.EventArgs e)
		{			
			ObjectSet contacts = (ObjectSet)Manager.GetObjectSet(typeof(Category), string.Empty);
			DataGrid1.DataSource = contacts;
			DataGrid1.DataBind();
			// Put user code to initialize the page here
		}[/red]
```

så får jag **c:\\inetpub\\wwwroot\\ormapper\\WebForm1.aspx.cs(24): No overload for method 'ObjectSet' takes '0' arguments**

mv icaaq

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

## #6 — PDahlen, 2004-09-12T10:37Z

Om man kollar exemplet i ObjectSet.cs så står det att man ska använda

```
ObjectSet contacts = Manager.GetObjectSet(typeof(Category), string.Empty);
```

Så ta bort din Cast och kolla så att Category existerar.
Eftersom du ska ha fram typeof(Category) så måste ju Category existera. Så det kan vara det som orsakar felet.

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

## #7 — icaaq, 2004-09-12T10:44Z

Category existerar i samma namespace som allt annat Spira.Data 

Jag tycker att det är en lite dålig exempel-fil som visas på ormapper.net.

Den verkar vara mer inriktad på winforms.....om jag inte är ute o cyklar nu.

mv icaaq

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

## #8 — PDahlen, 2004-09-12T10:50Z

Ja, det kan säkert stämma att exemplen är för Winforms, men när det gäller den rena C#- koden så spelar det ingen roll om det är Win eller Webb forms.
Du ska skapa ObjectSet contacts på samma sätt i både Win och Webb, så som visas i exemplet.
Blir det någon skillnad om du tar bort din Cast?
Prova även att lägga en testrad innan Objectset raden.
Testa att skriva ut typeof(Category) och se om det orsakar felet.
Dvs.

```
Response.Write(typeof(Category))
```

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

## #9 — icaaq, 2004-09-12T10:58Z

Om jag skriver ovanstående kod så får jag fram
spira.Data.Category

Så det är inte felet. Jag tror som du att felet ligger i contacts. Men jag vet inte hur jag ska initiera det objectsetet.......

Förslag?

mv icaaq

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

## #10 — PDahlen, 2004-09-12T11:03Z

Provade du med = New Objectspace
på Manager nån gång som rekommenderat ovan?

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

## #11 — icaaq, 2004-09-12T11:05Z

> **icaaq skrev:**
>
> Gör jag så här
>
>
> ```
> [red]
> public class WebForm1 : System.Web.UI.Page
> 	{
> 
> 		protected System.Web.UI.WebControls.DataGrid DataGrid1;
> 		public static ObjectSpace Manager;
> 		[b]public ObjectSet contacts = new ObjectSet();[/b]
> 		private void Page_Load(object sender, System.EventArgs e)
> 		{			
> 			ObjectSet contacts = (ObjectSet)Manager.GetObjectSet(typeof(Category), string.Empty);
> 			DataGrid1.DataSource = contacts;
> 			DataGrid1.DataBind();
> 			// Put user code to initialize the page here
> 		}[/red]
> ```
>
> 
> så får jag **c:\\inetpub\\wwwroot\\ormapper\\WebForm1.aspx.cs(24): No overload for method 'ObjectSet' takes '0' arguments**
> 
> 
> mv icaaq

Om det är så här du menar så .... Ja det har jag testat ;)

mv icaaq

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

## #12 — PDahlen, 2004-09-12T11:26Z

Nej, inte ObjectSet, ObjectSpace.

public static ObjectSpace Manager = New ObjectSpace();

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

## #13 — icaaq, 2004-09-12T12:39Z

Samma fel...

 **No overload for method 'ObjectSpace' takes '0' arguments**

Jag blir inte klok på hans exempel......

mv icaaq

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

## #14 — PDahlen, 2004-09-12T12:49Z

Jag tycker att det saknas saker i din kod.
Pauls exempel i ObjectSpace.cs filen är

```
public static ObjectSpace Manager;

string mappingFile = @"C:\Data\Examples\Contacts\Mappings.config";
string connectMsSql = "Server=(local);Database=Contacts;Trusted_Connection=True;";

Manager = new ObjectSpace(mappingFile, connectMsSql, Provider.MsSql);
```

Men du försöker skapa ett ObjectSpace utan att ange mapping filen och dbkopplingen.
Kolla i ObjectSpace.cs på de olika konstruktörerna som finns och på de exempel som står i samband med varje funktion.
Om man läser detta så ser man att din kod saknar vitala delar.

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

## #15 — icaaq, 2004-09-12T13:00Z

Ok det är nog jag som tänkt lite fel.....

Jag tänkte att min ovanstående Manager.cs initierade mitt ObjectSpace....det p.g.a denna rad i hans exempel.
**public static ObjectSpace Manager; // See Initialization Example** 

Jag ska testa lite med din kod....

mv icaaq

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

## #16 — PDahlen, 2004-09-12T13:15Z

Felet du gör är att du har skapat din egna klass Manager, men istället för att instansiera en Manager så använder du ändå ObjectSpaces.

public static ObjectSpace Manager;

Ovanstående innebär att du skapar ett ObjectSpace objekt som heter Manager. Men du har skapat en Manager klass och bör då använda

public static Manager myOsManager:

Men du måste ändå instansiera ObjectSpaces i Manager klassen på rätt sätt.

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

## #17 — icaaq, 2004-09-12T13:18Z

Om du skulle använda hans ORMapper och fylla en datagrid.....hur skulle det se ut? För jag tycker inte att det skulle behövas så mycket kod.. eller??

mv icaaq

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

## #18 — PDahlen, 2004-09-12T13:34Z

Har inte hunnit använda den så mycket ännu, och jag kan hålla med dig om att hans exempel i vissa fall verkar okompletta. Men ta t.ex. ObjectSpace, då finns exempel i samband med konstruktörerna på hur man skapar objektet.
Så följande borde funka.

```
string mappingFile = @"C:\Data\Examples\Contacts\Mappings.config";
string connectMsSql = "Server=(local);Database=Contacts;Trusted_Connection=True;";

public static ObjectSpace Manager = new ObjectSpace(mappingFile, connectMsSql, Provider.MsSql);

ObjectSet contacts = Manager.GetObjectSet(typeof(Category), string.Empty);
DataGrid1.DataSource = contacts;
DataGrid1.DataBind();
```

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

## #19 — icaaq, 2004-09-12T17:53Z

Jag fick det enklaste av enklaste exemplet att funka till slut...

```
[red]
ObjectSpace myManager = new ObjectSpace(@"C:\Inetpub\wwwroot\ormapper\Mappings.config",  @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Inetpub\data\northwinddemo.mdb", Provider.Access);[/red]
```

WeeEEeEEeEe Tack PDahlen

Nu ska jag bara testa vidare.... och implementera den i min DAL eller något...

mv icaaq

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

## #20 — icaaq, 2004-09-13T07:38Z

Nu undrar jag  hur ni gör när ni vill använda er av avancerade SQL-satser, typ innerjoins eller unions? använder ni er av ORMappern då med eller fyller ni objekten själva, med t. ex en datareader...

mv icaaq

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

---

Tråden på webben: https://www.webforum.nu/amne/dotnet/111382-wilson-ormapper  
Nästa sida: https://www.webforum.nu/amne/dotnet/111382-wilson-ormapper/page2.md
