Table du serveur SQL:
SomeId PK varchar(50) not null
OtherId PK int not null
Comment dois-je mapper cela dans le code EF 6 en premier?
public class MyTable
{
[Key]
public string SomeId { get; set; }
[Key]
public int OtherId { get; set; }
}
J'ai vu des exemples où vous devez définir l'ordre de chaque colonne, est-ce nécessaire?
Y a-t-il une documentation officielle à ce sujet quelque part?
c#
sql-server
entity-framework
entity-framework-6
loyalflow
la source
la source
SomeId
unstring
ou unint
?Réponses:
Vous devez absolument mettre dans l'ordre des colonnes, sinon comment SQL Server est-il censé savoir lequel est le premier? Voici ce que vous devez faire dans votre code:
Vous pouvez également consulter cette question SO . Si vous voulez une documentation officielle, je vous recommande de consulter le site Web officiel d'EF . J'espère que cela t'aides.
EDIT: Je viens de trouver un article de blog de Julie Lerman avec des liens vers toutes sortes de bienfaits EF 6. Vous pouvez trouver tout ce dont vous avez besoin ici .
la source
otherwise how is SQL Server supposed to know which one goes first?
- pourquoi pas de la même manière qu'il connaît l'ordre de toutes les autres colonnes?Pour le mappage de la clé primaire composite à l'aide du framework Entity, nous pouvons utiliser deux approches.
1) En remplaçant la méthode OnModelCreating ()
Par exemple: j'ai la classe de modèle nommée VehicleFeature comme indiqué ci-dessous.
Le code dans mon DBContext serait comme,
2) Par annotations de données.
Veuillez consulter les liens ci-dessous pour plus d'informations.
1) https://msdn.microsoft.com/en-us/library/jj591617(v=vs.113).aspx
2) Comment ajouter une clé unique composite à l'aide d'EF 6 Fluent Api?
la source
Grâce à la configuration, vous pouvez le faire:
puis dans la configuration du contexte
la source
J'ai pensé que j'ajouterais à cette question car c'est le meilleur résultat de recherche Google.
Comme cela a été noté dans les commentaires, dans EF Core, il n'y a pas de support pour l'utilisation des annotations (attribut Key) et cela doit être fait avec fluent.
Comme je travaillais sur une grande migration d'EF6 vers EF Core, ce n'était pas recommandable et j'ai donc essayé de le pirater en utilisant Reflection pour rechercher l'attribut Key, puis l'appliquer pendant OnModelCreating
Je n'ai pas complètement testé cela dans toutes les situations, mais cela fonctionne dans mes tests de base. J'espère que cela aide quelqu'un
la source