实体框架代码首先流畅的 API 关系



我有一个表格Items和表格Services

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

如何通过 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

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

如果你询问有关 EF Core,则可以在此处找到非常好的帮助:

  • 实体框架核心关系
  • 实体框架核心流畅 API


顺便说一句:我的项目中也有类似的案例,它按照惯例工作。

当然,我已经在我的ApplicationDbContext中配置了DbSet<>

(我不确定它在早期版本的 EF 中是如何工作的):


使用项目服务对象是否有其他原因,或者仅用于关系目的?

如果您仅出于关系目的使用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; }

相关内容

  • 没有找到相关文章

最新更新