Nicht in der Lage, um zu bestimmen, composite primary key bestellen.. aber die Bestellung ist da
Ich bin immer diese Fehlermeldung zur Laufzeit:
Nicht in der Lage, um zu bestimmen, zusammengesetzte primary key-Bestellung für Typ " X. Anwendung.Modelle.ItemService'. Verwenden Sie die ColumnAttribute...
Aber ich habe die Bestell-set für die composite primary keys!
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
namespace X.Application.Models
{
public class ItemService
{
[Key]
[Column(Order = 0)]
[ForeignKey("Item")]
public int ItemId { get; set; }
[Key]
[Column(Order = 1)]
[ForeignKey("Service")]
public int ServiceId { get; set; }
[Required]
public virtual Item Item { get; set; }
[Required]
public virtual Service Service { get; set; }
}
}
Ich bin mit EntityFramework 6.1.3. Irgendwelche Ideen, wo ich suchen sollte?
Sind Sie versuchen, zu erstellen, die viele-zu-viele-Beziehung zwischen
Was ist die definition von
Ja, danke Yacoub, es ist eine viele-zu-viele-Beziehung. Ein Element ist ein Gerät, eine Maschine oder ein Netzwerk-switch, etc, die dazu dienen können, eine oder mehrere "services". Ein service ist eine Abstraktion, die von einer Anwendung wie ein Daten-repository, oder eine web-Anwendung, beide kann auf mehreren Servern. Dies ist eine asset-management-system für die überwachung von Maschinen und was Sie tun.
vielleicht Schlüssel Bestell-annotation werden in dem gleichen Attribut als Schlüssel? Ich bin mir nicht sicher, aber Sie könnten versuchen Sie [Key Column(Order = 1)]
Danke @DevilSuichiro, hab ich schon versucht, es macht keinen Unterschied... und ich habe nur versucht, wieder für eine gute Maßnahme, gleiche Fehlermeldung.
Item
und Service
?Was ist die definition von
Item
und Service
?Ja, danke Yacoub, es ist eine viele-zu-viele-Beziehung. Ein Element ist ein Gerät, eine Maschine oder ein Netzwerk-switch, etc, die dazu dienen können, eine oder mehrere "services". Ein service ist eine Abstraktion, die von einer Anwendung wie ein Daten-repository, oder eine web-Anwendung, beide kann auf mehreren Servern. Dies ist eine asset-management-system für die überwachung von Maschinen und was Sie tun.
vielleicht Schlüssel Bestell-annotation werden in dem gleichen Attribut als Schlüssel? Ich bin mir nicht sicher, aber Sie könnten versuchen Sie [Key Column(Order = 1)]
Danke @DevilSuichiro, hab ich schon versucht, es macht keinen Unterschied... und ich habe nur versucht, wieder für eine gute Maßnahme, gleiche Fehlermeldung.
InformationsquelleAutor marcdurham | 2015-10-21
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich lief in dieses problem und fand eine andere Ursache haben - ich Teile die Lösung nur für den Fall, nützt es jemand anderes.
Eines der Projekte, die in meiner Lösung wurde targeting .NET 4.5.2, aber als ich sah auf die Referenz, die ich hatte, zu EF-es war mit dem .Net 4.0-version; alle anderen Projekte wurden targeting .NET 4.5.2 und die richtige 452 version von EF. Nach einem build, die nicht übereinstimmende version von EF wurde in der Ausgabe-Verzeichnis und meine app hat nicht funktioniert.
Wenn ich aktualisiert, das Projekt (und die nuget-Pakete.config) mit einem Verweis auf die 452-version von EF, das problem ging Weg.
InformationsquelleAutor jimmanuel
Ich es behoben.
Den beiden anderen entities referenziert von ItemService, die Service und Element, bezeichnet zurück zu ItemService mit Sammlung Eigenschaften genannt ItemServices.
Nachdem ich Sie gelöscht, jene zwei Eigenschaften, die Teil der viele-zu-viele-Beziehung, dass ich nicht brauchen, um tatsächlich in das Modell, der Fehler ging Weg.
Danke an alle für den input.
InformationsquelleAutor marcdurham
Bekam ich diese Fehlermeldung, wenn die .NET 4.5-Projekt versehentlich verwiesen wurde EntityFramework.dll 4.0 nuget-Paket-Unterordner. Einfach Paket neu installieren, wird dieses Problem beheben.
InformationsquelleAutor RR-Fireball