2017-05-01 18 views
1

私は異なるエンティティ(たとえば、ユーザーと顧客)を持つセットアップを作成しようとしています。これらのエンティティのそれぞれは、Login-dataを必要とする異なるエンティティで重複して作業する必要がないように、Login-tableに格納するログイン情報をいくつか持っています。エンティティフレームワーク1対1またはゼロ - データベース最初

ただし、Entity Frameworkを使用してセットアップを行うことができません。

ユーザー

  • ID(PK)
  • 名前
  • ...
  • LOGIN_ID:私は:)

    私のデータベースには3つのテーブルを持っているあなたは私を助けることを願って(FK to Login.Id)

人のお客様

  • ID(PK)
  • CustomerNumberの
  • ...
  • LOGIN_ID(Login.IdにFK)

ログイン

  • ID(PK)
  • ユーザー名
  • パスワード

...

各エンティティは1持っている - とのみ1 - ログイン。したがって、あるユーザーは1つのログインを持っています。そしてある顧客は1つのログインを持っています。

私はC#で、このような何かをできるようにする必要があります。

var user = _userService.GetUser(2); 
user.Login.Username; 

var customer = _customerService.GetCustomer("abc"); 
customer.Login.Username; 

しかし、私は単純にEFのマッピングを動作させることはできません。

ログイン可能にUser_Id列とCustomer_Id列が含まれるようにデータベーススキーマを変更しようとしましたが、結果は同じです。ユーザーまたは顧客にアクセスすると、ログインエンティティがnullになります。そして私は既に追加しました

Include(i => i.Login); 

私はそれを完全に見ていないかもしれません。私はこれに関する投稿のdusinを読んだことがありますが、大部分はDb-FirstではなくCode-Firstに焦点を当てているようです(例:http://blog.bennymichielsen.be/2011/06/02/entity-framework-4-1-one-to-one-mapping/

誰かが私にEF Fluent APIマッピングを提供してください作業?

ありがとう! :)

+0

DBが既に存在する場合、Code-Firstは動作します。 – Eris

+0

合意。しかし、私は単にこれを得ることができません:/ – JBuus

+0

最小限の、完全で、検証可能な例を作成する方法https://stackoverflow.com/help/mcve – Eris

答えて

0

私は実際にMorteza Manaviの投稿thisを読んだ後、別のアプローチをとった。魅力のように動作します:)

関連する問題