2011-10-19 11 views
1

などの外部キーは、私は、次の表を持っている:エンティティフレームワークと文字列

Language 
    Id (bigint, primary key) 
    Name (nvarchar(100)) 
    Code (nvarchar(2)) 

    Article 
    Id (bigint, primary key) 
    LanguageCode (nvarchar(2), foreign key constraint to Language/Code) 
    ... 

私の質問:私は、エンティティフレームワーク4を使用してモデルを生成する場合、それは記事/言語コードと言語/コードとの関係を生成しません。 。これはエンティティフレームワークの制限ですか、またArticleI表にLanguageIdを追加する必要がありますか、ここで何か間違っていますか?

ありがとうございます!

+0

あなたは何か間違っています(何がわからないのですか)。関係はそこにあるはずです。 – Jon

+0

これは意味をなさない。 Idを削除してコードをプライマリにするか、Idをforeignとして使用します。 – Alex

答えて

3

問題は、Language.CodeがLanguageクラスの主キーではないと思います。 あなたのモデルでは、同じLanguage.Codeで異なる言語を使用することができます。

別のこと。ビジネスの観点からは、言語の代わりにユーザーの文化に応じて異なる記事を表示する方がはるかに優れています。言語は単一の文化に固有のものではなく、CurrencyFormat、DateFormat、Taxes、もちろんLawは文化特有のものです。

+0

私はコードの主キーを作成しようとしましたが、結果は同じでした... –

+0

なぜあなたはLanguage.Idが必要ですか?私はあなたが主キーとしてLanguage.Codeだけ必要と思いますか? 2列の外部キーですか?あなたは "データベースを最初に"開発していますか? – dknaack

+1

hm strange!私は言語のIDを削除し、コードの主キーを作った、今それは動作します!ありがとう! –

関連する問題