2016-06-12 126 views
1

我有一个表Items和表Services实体框架代码第一流利的API关系

每个项目都需要与一个服务有关。

如何在EF Fluent api中通过ItemServices关系表编写2个关系?

这里是班

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.ItemService.Service,但作为一个item.Service

回答

1

在您正在使用哪个版本的实体框架?

如果你问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; } 
相关问题