2017-11-01 5 views
-2

Ich bin ein Anfänger in .net und das letzte Mal habe ich versucht zu lernen EntityFranework. Ich habe einfaches Projekt und hatte ein Problem:Wie man ein Objekt zur Datenbank hinzufügt (EntityFramework) C#

Fehler CS1503 Argument 1: Konvertierung von ‚ABC.Customer‘ auf ‚ABC.Order‘

Ich habe versucht, es auf eigene Faust zu lösen, aber ohne Erfolg, ich werde für alle Hilfe appricaite.

Code:

EntityData db = new EntityData(); 
var _Order = new Customer(); 

var newOrder = db.Orders.ToList(); 

_Order.number = int.Parse(TextBox1.Text); 

newOrder.Add(_Order); // _Order is wrong 
db.SaveChanges(); 

Meine Kundenklasse hat nur eine Eigenschaft:

public int number { get; set; } 

Meine Datenbank hat nur eine Tabelle: Order mit einer Eigenschaft: number.

+2

'var _Order = neuer Kunde();' ist das Problem. Ich nehme an, Sie brauchen etwas wie 'var _Order = new Order();' – FakeCaleb

+0

"Kunde" und "Bestellung" klingen, als wären sie zwei verschiedene Dinge ... – David

+0

Enthält EntityData eine Definition für 'Kunde'? – Waragi

Antwort

0

Wenn EntityData eine Definition für ‚Order‘ hat und Sie versuchen, es auf diese Tabelle speichern Sie diese versuchen:

EntityData db = new EntityData(); 
var _Order = new Order(); 

_Order.number = int.Parse(TextBox1.Text); 

db.Order.Add(_Order); // _Order is wrong 
db.SaveChanges(); 
0

Wenn Sie diesen Code ausführen, sieht es _Order als Instanz von Kunden . Wenn Sie versuchen, es zu speichern, sieht Entity Framework dies und lehnt es ab, obwohl der Kunde möglicherweise dieselben Eigenschaften wie "Bestellen" hat.

Sie müssen etwas tun, damit Entity Framework Ihre Aktion nicht ablehnt.

db.Orders.Add(new Order{Number = _Order.number}); 
+0

Das funktioniert perfekt! :) – Lucas

0

Vielen Dank für alle Hinweise. Ich folgte für eine, die die beliebtesten war - unter ändern:

var _Order = new Customer(); 

auf

var _Order = new Order(); 

Zurück zur Customer-Klasse - es ist nur eine Eigenschaft enthält:

public int number { get; set; } 

Der Grund, warum ich vorbereitete separate Klasse namens Customer ist in der Tat, dass auf einem Tutorial sah ich diese Art von Lösung. Um ehrlich zu sein, musste ich einen Fehler bei meinem Prozess machen und jetzt funktioniert fast alles (Daten werden nicht gespeichert).

Ganze App, die ich nur für meine lernen und ich verwendet falsche Namenskonditionen wie Customer.

Verwandte Themen