1
我有两个表有多对多的关系。我正在使用实体框架。如何实现与Entity Framework的多对多关系?
这是我的模型类:
public partial class PE_Attivita
{
public PE_Attivita()
{
this.ANAG_OperatoriMedici = new HashSet<ANAG_OperatoriMedici>();
}
public int ID { get; set; }
public string Descrizione { get; set; }
public Nullable<int> IDAttivitaPare { get; set; }
public Nullable<int> CodiceCategoria { get; set; }
public string NomeAttivita { get; set; }
public virtual ICollection<ANAG_OperatoriMedici> ANAG_OperatoriMedici { get; set; }
}
public partial class ANAG_OperatoriMedici
{
public ANAG_OperatoriMedici()
{
this.PE_Attivita = new HashSet<PE_Attivita>();
}
public string CodicePersoneFisiche { get; set; }
public string Descrizione { get; set; }
public virtual ANAG_PersoneFisiche ANAG_PersoneFisiche { get; set; }
public virtual ICollection<PE_Attivita> PE_Attivita { get; set; }
}
在我的数据库中,有实现多对多关系的第三个表。
现在我想提取从该表中的所有数据,所以我写了这个代码:
activityForDoctors = from ad in db_data.PE_Attivita
.SelectMany(c => c.ANAG_OperatoriMedici)
select new ActivityDTO.activitysXDoctors
{
codiceFiscaleDottore = ad.CodicePersoneFisiche,
IdAttivita = a.ID
}
此代码的作品,但我收到同样重复的数据,所以我想以插入由子句组,和我改变了我的代码如下:
activityForDoctors = from ad in db_data.PE_Attivita
.SelectMany(c => c.ANAG_OperatoriMedici).GroupBy(prop=>prop.CodicePersoneFisiche,prop=>a.ID)
select new ActivityDTO.activitysXDoctors
{
codiceFiscaleDottore = ad.CodicePersoneFisiche,
IdAttivita = a.ID
}
,但我从编译器收到此错误:
'System.Linq.Igrouping' 确实ñ OT,包含3为0'CodicePersoneFisiche定义”和没有扩展方法‘CodicePersoneFisiche’接受型的第一参数‘System.Linq.Igrouping’可以找到(是否缺少使用集引用?)
EDIT
这是Model.edmx.diagram
<?xml version="1.0" encoding="utf-8"?>
<edmx:Edmx Version="3.0" xmlns:edmx="http://schemas.microsoft.com/ado/2009/11/edmx">
<!-- EF Designer content (DO NOT EDIT MANUALLY BELOW HERE) -->
<edmx:Designer xmlns="http://schemas.microsoft.com/ado/2009/11/edmx">
<!-- Diagram content (shape and connector positions) -->
<edmx:Diagrams>
<Diagram DiagramId="2f7abfd0eb854868836eeaf6d91c93a4" Name="Diagram1" ZoomLevel="74">
<EntityTypeShape EntityType="ModelOmniacareData.ANAG_OperatoriMedici" Width="1.5" PointX="18.25" PointY="15.5" IsExpanded="true" />
<EntityTypeShape EntityType="ModelOmniacareData.ANAG_OperatoriMediciXAssistiti" Width="1.5" PointX="20.5" PointY="18.75" IsExpanded="true" />
<EntityTypeShape EntityType="ModelOmniacareData.ANAG_PersoneFisiche" Width="1.5" PointX="16" PointY="24" IsExpanded="true" />
<EntityTypeShape EntityType="ModelOmniacareData.PE_Attivita" Width="1.5" PointX="13" PointY="10.5" IsExpanded="true" />
<EntityTypeShape EntityType="ModelOmniacareData.PE_AttivitaXIndici" Width="1.5" PointX="15.25" PointY="11" IsExpanded="true" />
<EntityTypeShape EntityType="ModelOmniacareData.PE_AttivitaXParametri" Width="1.5" PointX="18.25" PointY="7.625" IsExpanded="true" />
<EntityTypeShape EntityType="ModelOmniacareData.PE_CategoriaAttivita" Width="1.5" PointX="10.75" PointY="11.625" IsExpanded="true" />
<EntityTypeShape EntityType="ModelOmniacareData.PE_IndiciValutazione" Width="1.5" PointX="13" PointY="6.5" IsExpanded="true" />
<EntityTypeShape EntityType="ModelOmniacareData.PE_Parametri" Width="1.5" PointX="16" PointY="19.375" IsExpanded="true" />
<EntityTypeShape EntityType="ModelOmniacareData.PE_ParametriInputSchedulazioneAttivita" Width="1.5" PointX="22.75" PointY="11.25" IsExpanded="true" />
<EntityTypeShape EntityType="ModelOmniacareData.PE_Schedulazione_Attivita" Width="1.5" PointX="20.5" PointY="10.375" IsExpanded="true" />
<AssociationConnector Association="ModelOmniacareData.FK_ANAG_OperatoriMedici" ManuallyRouted="false" />
<AssociationConnector Association="ModelOmniacareData.FK_OperatoreMedicoXAssistiti_OperatoreMedico" ManuallyRouted="false" />
<AssociationConnector Association="ModelOmniacareData.FK_ParametriXValori" ManuallyRouted="false" />
<AssociationConnector Association="ModelOmniacareData.FK__MONITOR_D__IDDat__4B622666" ManuallyRouted="false" />
<AssociationConnector Association="ModelOmniacareData.FK_Attivita" ManuallyRouted="false" />
<AssociationConnector Association="ModelOmniacareData.FK_AttivitaCodiceCategoria" ManuallyRouted="false" />
<AssociationConnector Association="ModelOmniacareData.FK_AttivitaXIndiciAttivita" ManuallyRouted="false" />
<AssociationConnector Association="ModelOmniacareData.FK_AttivitaXParametriAttivita" ManuallyRouted="false" />
<AssociationConnector Association="ModelOmniacareData.FK_AttivitaXIndici" ManuallyRouted="false" />
<AssociationConnector Association="ModelOmniacareData.FK_AttivitaXParametri" ManuallyRouted="false" />
<AssociationConnector Association="ModelOmniacareData.ANAG_AssociazioniXOperatoriMedici" ManuallyRouted="false" />
<AssociationConnector Association="ModelOmniacareData.PE_AttivitaXMedico" ManuallyRouted="false" />
</Diagram>
</edmx:Diagrams>
</edmx:Designer>
</edmx:Edmx>
如何创建此第三个表?因为在我的数据库中有第三个表 – bircastri
你可以添加你的映射代码到你的问题吗? – UrbanEsc
是的,我只是插入映射代码 – bircastri