2016-09-09 18 views
1

私は既存のエンティティを持っていますユーザーです。今、私は新しいエンティティを作成しようとしていますとユーザとの関係が0-1です。Entity Framework、既存のエンティティと0-1の関係を作成する

class Contact 
{ 
    public int Id {get; set;} 
    public string Name {get; set;} 
    public int? UserId {get; set;} 
    public virtual User TheUser{get; set;} 
} 

すべての提案は、このようなものについては関与:

modelBuilder.Entity<User>() 
    .HasOptional(t => t.TheUser) 
    .WithOptionalDependent(u => u.TheConatct); 

しかし、これは我々が存在ユーザーエンティティにTheConatctプロパティを追加しなければならないことを意味。実際には、存在するエンティティを変更したくありません。私は問い合わせへのユーザーエンティティの外部キーの形式を定義し、TheUserプロパティを経由して問い合わせからユーザーエンティティにアクセスすることができます必要なものすべて。

更新: 私はForeignKeyのプロパティに注釈を付けるために属性を使用している場合:次に

class Contact 
{ 
    public int Id {get; set;} 
    public string Name {get; set;} 
    public int? UserId {get; set;} 
    [ForeignKey("UserId")] 
    public virtual User TheUser{get; set;} 
} 

を、ObjectContext.CreateDatabase()の結果も関係を持つエンティティに応じて、(すでにテーブルの存在のための書類を作成して含まれていますユーザーと)。

もちろん、「Entity Framework 6 Code First」についても言及しています。また、1-1の関係についても同じ問題があります。

アイデア、私はこの問題に

答えて

-1

を克服する方法があるかどうか、私にはない不思議新しいエンティティ問い合わせ

のための追加のプロパティを追加するために、既存のエンティティユーザーを変更することはできません使用しているエンティティフレームワークのバージョンを知っていて、コードファーストを使用していると仮定していますが、0-1ではなく1対多の関係を使用することを検討する必要があります。

私はあなたがそれを好きな方法で0-1のためのサポートがあると信じていませんが、あなたは

+0

私たちは今すぐ有効な答えを投票しますか?これはEFの特定のバージョンで真です... – JDandChips

+0

彼は0-1の関係を持つEFのバージョンを使用しています。 –

+0

いいえ、それは言及されていません。 – JDandChips

0

(も、あなたの「多」のみとなり、これまで1によるが)多くのものを持っていることによってシミュレートすることができます別のオーバーロードを使用してください:

modelBuilder.Entity<User>() 
    .HasOptional(t => t.TheUser) 
    .WithOptionalDependent(); 
関連する問題