我有一个表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
答案 0 :(得分:1)
您正在使用哪个版本的Entity Framework?
如果您询问EF Core,那么您可以在这里找到非常好的帮助:
顺便说一下:我的项目中有类似的案例,而且按惯例工作。
我当然在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; }