0

この以前の回答がここにあったものと同様のことをしようとしています: Entity Framework 4 Code First (POCO) を使用して1対1の関係を宣言する方法

問題は、私はこれに非常に慣れておらず、Entity Framework 5コードを最初に使用してHasConstraintいて、ラムダが苦手であることは言うまでもなく、もう存在しないことです。User クラスを Profile クラスに効果的かつ簡単にマップできるように、誰かがこれを拡張するのを手伝ってくれるかどうか疑問に思っていましたか? 構成ファイルとモデルビルダーに対してこれを行う方法を知る必要があります

各ユーザーには 1 つのプロファイルがあります

また、別の簡単な質問として、プロファイル モデルにリストが含まれているとします。これらをモデル ビルダーおよび構成ファイルに効果的に配置するにはどうすればよいでしょうか。

ありがとうございました

4

2 に答える 2

0

例えば

public class User
{
    public int Id { get; set; }
    public string Username { get; set; }
    public Profile Profile { get; set; }
    // public int ProfileId { get; set; }
}

public class Profile
{
    public int Id { get; set; }
    public string FirstName { get; set; }
    public string LastName { get; set; }
    public string PostalCode { get; set; }
}
// ...
modelBuilder.Entity<User>()
    .HasOptional(x => x.Profile)
    .WithRequired();

ProfileId役に立たない、FK は「フェンスの反対側」にあります ( Profile)。
(これはIMOで最も理にかなっています)

Idinが必要な場合(たとえば、追加時に ID だけで入力Userできるようにするため- プロファイルとユーザーの両方を作成するため、1 対 1 が実際には使用されない場合)、逆にすることができます... ProfileUser

modelBuilder.Entity<User>()
    .HasRequired(x => x.Profile)
    .WithOptional();

...そして、あなたProfileIdは実際にはId(pk -> pk) にあります。

于 2013-04-09T13:19:05.670 に答える