Ici, nous sommes sur EF Core et obtenu 3 tables:
et plus (sauf actualités, articles): contenu, post, formulaire, etc. p>
et mes définitions de modèle P>
public class Item { public int Id { get; set; } public string Name { get; set; } public decimal Price { get; set; } public Link Link { get; set; } } public class News { public int Id { get; set; } public string Header { get; set; } public string Content { get; set; } public Link Link { get; set; } } public class Link { public int Id { get; set; } public string Type { get; set; } public int RowId { get; set; } public string Url { get; set; } }
5 Réponses :
update strong> J'ai lu votre question une fois de plus et bien pour être honnête, vous n'avez pas besoin de créer une autre table pour les liens, ajoutez simplement une colonne aux nouvelles et à l'article. sur .. Et tout ira bien. p>
Bonne idée pour les nouvelles et l'article. Mais ne modifiera pas la table des liens et ajouter des colonnes, car sauf actualités et articles Il existe d'autres entités telles que le contenu, etc., il sera donc beaucoup de NULL. C'est une raison pour laquelle voici Rowid code> et
type code>. Puis-je utiliser quelque chose comme
Hasdiscriminator code> ou un autre tour?
Comment construire Plan du site alors? foreach code> Chaque tables n'est pas une bonne idée. BTW, nous avons une table de menus qui décrit le menu arborescent.
Vous souhaitez générer un lien pour un enregistrement, c'est le meilleur si vous le mettez dans la même table. Aussi pour le site du site, vous pouvez ajouter une colonne nommée commande et la gérer de cette façon.
Voici un problème pour trouver l'URL nécessaire. Dans la demande, vous avez une URL et avez besoin de trouver ce qui est: article, nouvelles, contenu, catalogue ou forme. C'est une raison pour laquelle nous n'avons qu'une seule table de liens. Nous ne pouvons donc pas ajouter de l'URL à chaque table.
Je changerais lien code> pour utiliser nullable
int code> et séparez les touches étrangères pour ces tables:
public class Link
{
public int Id { get; set; }
public string Type { get; set; }
public int? NewsId { get; set; }
public int? ItemId { get; set; }
public string Url { get; set; }
}
Non, parce que voici beaucoup d'entités sauf les nouvelles et les articles.
Je pense que vous pouvez supprimer le Rowid de la table des liens et ajouter une colonne de clé étrangère dans les 2 autres tables faisant référence à la colonne ID dans la table des liens. P>
Maintenant, avec vous avoir l'URL, vous avez le type et l'identifiant, vous pouvez simplement interroger le contenu de la table respective. P>
Pour avoir la propriété NEWROW, et les contraintes aux deux autres tables, vous l'appliquez à froid comme ceci: puis définissez cette propriété comme non mappée sur le contextDB. p> p>
DAPPER. Juste dapper qui permet d'écrire des requêtes personnalisées. P>
Veuillez utiliser un titre plus décrit la prochaine fois et utilisez les balises appropriées. entité-framework est pour l'ancienne entitéFramework (1 à 6.x). entité-framework-core est pour le nouveau, à partir du noyau EF de grattage réécrit et de la fin, avant la Demander ce type de question Il est plus rapide et plus facile de consommer la documentation docs.microsoft .COM / EN-US / EF / Core / Modélisation / relations au lieu d'attendre une réponse;)
Ef noyau. Le principal problème de base de données existant et indésirable pour modifier dB, car beaucoup de données et beaucoup d'entités avec ces liens (contenu, catalogue et plus)
Que décrivez-vous est un modèle de base de données qui ne peut pas être décrit avec les contraintes FK, ce qui ne peut donc pas être mappé dans une version EF, y compris le noyau.
Vous avez associations polymorphes i> ici. Si vous souhaitez le transformer en un modèle avec des contraintes FK, vous avez i> pour changer le schéma de base de données.
Ivan Stoev, Gert Arnold, merci d'expliquer.
Vous pouvez davantage normaliser le schéma et ajouter deux nouvelles tables link_new: {Linkid, NewID} link_item: {LinkID, élémentId} Retrait de Rowid à partir de la table de liaison et tapez Dire s'il s'agit d'un objet ou d'une nouvelle