2016-06-12 16 views
1

私はテーブルItemsとテーブルServicesを持っています。Entity Frameworkコードの最初の流暢なAPIの関係

各項目は1つのサービスとの関連が必要です。

これらの2つの間の関係を、EF Fluent APIのItemServicesリレーショナルテーブル経由でどのように書くことができますか?ここで

public class Item 
{ 
    public Guid Id { get; private set; } 
    public Service Service { get; private set; } 
} 

public class ItemService 
{ 
    public int ServiceId { get; set; } 

    [ForeignKey(nameof(ServiceId))] 
    public Service Service { get; set; } 

    public int ItemId { get; set; } 

    [ForeignKey(nameof(ItemId))] 
    public Item Item { get; set; } 
} 

public class Service 
{  
    public int Id { get; private set; } 

    public string ServiceCode { get; set; } 
} 

は私が私のItemオブジェクト内の関係テーブルを持っている必要はありませんので、予めご了承くださいクラスですので、私はitem.ItemService.Serviceのようにそれを使用する必要はありませんが、item.Service

答えて

1

オンとしてどのバージョンのEntity Frameworkを使用していますか?

あなたがEFコアについて尋ねるならば、あなたはここで非常に良いヘルプを見つけることができます:BTW


:私は私のプロジェクトで同様のケースを持って、それはによって働いているがコンベンション。

は、もちろん私は中DbSet<>を設定している私のApplicationDbContext

(私はそれがEFの以前のバージョンの仕事だかどうかはわかりません):


がItemServiceを使用するために何か他の理由がありますオブジェクトまたはそれは関係の目的のためだけですか?

あなただけの関係の目的のためにItemServiceを使用している場合、あなたはあなたのケースでそれを必要としない - そのようなことしてみてください:

public class Item 
{ 
    public Guid Id { get; set; } 
    public Service Service { get; set; } 
} 

public class Service 
{  
    public int Id { get; set; }  
    public string ServiceCode { get; set; } 

    public Item Item { get; set; } //for One to One relationship 
    // or 
    public virtual ICollection<Item> Items { get; set; } // for One service to Many Items relationship 
} 

ApplicaitionDbContextで:

public virtual DbSet<Item> Items { get; set; } 
public virtual DbSet<Service> Services { get; set; } 
関連する問題