Question

Ce que je cherche à faire est de définir une Clé Étrangère de l'objet dans un EF entité via FluentHtml.J'ai une entité de Foo avec une référence à l'objet via la Barre de Foo.Bar.Ce que j'essaie de faire est de définir la valeur de la Barre de mon point de vue forme.Mes modèles contient une collection de tous les Bars par Modèle.Les Bars.De mon point de vue je suis tout simplement à l'aide de <%= this.Select(m => m.Foo.Bar).Options(Model.Bars) %> mais le modèle de l'état prétend qu'il n'est pas valide.La liste déroulante est correctement rempli avec Bar id et il semble tout à fait valide.Est-il quelque chose de magique j'ai besoin pour la mise EF entité de référence propriétés dans mes formulaires?

Je viens de déplacement de plus de Linq2SQL où j'ai été tout simplement à l'aide de Select(m => m.Foo.BarId) que vous pourriez avoir la clé de référence mappé ainsi que de l'objet.Cependant, Entity Framework ne permet pas cela.

Était-ce utile?

La solution

Vous rencontrez l'une des nombreuses complications qui découlent de l'utilisation d'objets d'affaires que vos modèles de vue. Je pourrais suggérer que, à long terme, il est beaucoup moins de problèmes si vous transformez les objets métier aux modèles de vue légers pour le rendu et la reliure. Laissez votre couche de service (ou contrôleur, si vous devez) comprendre comment définir Foo.Bar basé sur EditFoo.BarId.

Autres conseils

Je ne sais pas FluentHtml.Mais en ce qui concerne l'EF:

  1. EF 4.0 vous permet d'avoir "les associations de clé Étrangère", ce qui vous laisse vous reporter à m.Foo.BarId comme L2S n'.
  2. En EF 1, ou avec des "associations indépendantes" en EF 4, vous devez faire de la m.Foo.Bar.Id (note supplémentaire dot), à condition que la Barre est chargée.
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top