Streamaccesseurs >> SharePoint 2010 BCS renvoie plusieurs pièces jointes?
-
09-12-2019 - |
Question
Peut SharePoint 2010 BCS renvoie plusieurs pièces jointes?J'ai une base de données qui stocke plusieurs pièces jointes par entité.Voudrais les avoir toutes accessibles, mais j'ai une expérience insuffisante avec la BCS / BDC pour dire si cela est possible ou non.
La solution
Oui, vous pouvez avoir n nombre de pièces jointes à l'aide de la méthode StreamAccessor.Voir le code ci-dessous qui a deux méthodes.Un pour ramasser le document principal et autre pour ramasser le document supplémentaire.Dans le code derrière vous pouvez utiliser la même fonction pour renvoyer l'objet Stream.Faites-moi savoir si vous avez besoin d'une aide supplémentaire comme je l'ai déjà mise en œuvre à plusieurs reprises.
<!-- start document StreamAccessor method -->
<Method Name="ReadDocumentLink" IsStatic="false" LobName="ReadDocumentLink" IsCached="true">
<Parameters>
<Parameter Direction="In" Name="@Id">
<TypeDescriptor TypeName="System.Int32" IdentifierName="ID" Name="ID" />
</Parameter>
<Parameter Name="StreamData" Direction="Return">
<TypeDescriptor Name="StreamData" TypeName="System.IO.Stream" />
</Parameter>
</Parameters>
<MethodInstances>
<MethodInstance Type="StreamAccessor" ReturnParameterName="StreamData" ReturnTypeDescriptorPath="StreamData" Default="true" Name="MainDataStream" DefaultDisplayName="Document">
<Properties>
<Property Name="MimeTypeField" Type="System.String">DocumentMimeType</Property>
<Property Name="FileNameField" Type="System.String">DocumentFileName</Property>
<Property Name="Extension" Type="System.String">DocumentExtension</Property>
</Properties>
</MethodInstance>
</MethodInstances>
</Method>
<!-- end document StreamAccessor method -->
<!-- start document StreamAccessor method -->
<Method Name="ReadAdditionalDocumentLink" IsStatic="false" LobName="ReadAdditionalDocumentLink" IsCached="true">
<Parameters>
<Parameter Direction="In" Name="@Id">
<TypeDescriptor TypeName="System.Int32" IdentifierName="ID" Name="ID" />
</Parameter>
<Parameter Name="StreamData" Direction="Return">
<TypeDescriptor Name="StreamData" TypeName="System.IO.Stream" />
</Parameter>
</Parameters>
<MethodInstances>
<MethodInstance Type="StreamAccessor" ReturnParameterName="StreamData" ReturnTypeDescriptorPath="StreamData" Name="AdditionalDataStream" DefaultDisplayName="Additional Document">
<Properties>
<Property Name="MimeTypeField" Type="System.String">AdditionalDocumentMimeType</Property>
<Property Name="FileNameField" Type="System.String">AdditionalDocumentFileName</Property>
<Property Name="Extension" Type="System.String">AdditionalDocumentExtension</Property>
</Properties>
</MethodInstance>
</MethodInstances>
</Method>
<!-- end document StreamAccessor method -->
Autres conseils
Si par "Plusieurs pièces jointes par entité" Vous voulez dire que vous avez plusieurs colonnes binaires dans la table SQL, alors je vous suggère d'essayer de créer des méthodes StreamAccessor dans votre modèle BCS pour chaque colonne, voir les détails ici: